:root{--bg:#fff;--bg-soft:#f5f6f4;--bg-side:#f0f2ef;--bg-hover:#e6e9e4;--bg-active:#d7e6df;--text:#1d2420;--text-soft:#5d6862;--text-faint:#8b958f;--line:#dde1dc;--primary:#2f6f5e;--primary-text:#fff;--primary-soft:#e3efe9;--danger:#c0392b;--badge:#d9443a;--mention-bg:#fff2c2;--highlight:#fff6d6;--shadow:0 8px 28px #00000029;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#17191a;--bg-soft:#1f2223;--bg-side:#1b1e1f;--bg-hover:#272b2c;--bg-active:#23413a;--text:#e6e9e7;--text-soft:#a8b0ab;--text-faint:#7b847f;--line:#2e3233;--primary:#4a9c84;--primary-soft:#21332e;--mention-bg:#4a3f17;--highlight:#3a3519;--shadow:0 8px 28px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--primary)}.btn{border:1px solid var(--line);background:var(--bg);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 14px}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--primary)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-outline{color:var(--danger);border-color:var(--danger)}.btn.small{padding:4px 10px;font-size:13px}.btn.wide{width:100%;padding:10px}.icon-btn{cursor:pointer;width:34px;height:34px;color:var(--text-soft);background:0 0;border:none;border-radius:8px;flex:none;font-size:18px;line-height:1}.icon-btn:hover{background:var(--bg-hover)}.link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px}.field{margin-bottom:14px;display:block}.field>span{color:var(--text-soft);margin-bottom:4px;font-size:13px;display:block}.field input:not([type=checkbox]):not([type=radio]),.field select,.search{border:1px solid var(--line);background:var(--bg);border-radius:8px;outline:none;width:100%;padding:9px 11px}.field input:not([type=checkbox]):not([type=radio]):focus,.field select:focus,.search:focus{border-color:var(--primary)}.note{color:var(--text-soft);margin:0 0 12px;font-size:14px}.error{color:var(--danger);margin:0 0 12px;font-size:14px}.hint{color:var(--text-faint);text-align:center;margin:12px 0 0;font-size:13px}.muted-text{color:var(--text-faint);font-size:14px}.center{text-align:center}.small{font-size:12px}.splash{height:100%;color:var(--primary);place-items:center;font-size:28px;font-weight:700;display:grid}.login{background:var(--bg-soft);place-items:center;min-height:100%;padding:16px;display:grid}.login-card{background:var(--bg);border:1px solid var(--line);border-radius:14px;width:100%;max-width:380px;padding:28px 24px}.login-logo{text-align:center;color:var(--primary);margin:0 0 20px;font-size:30px}.code-input{letter-spacing:3px;text-align:center;font-family:ui-monospace,Cascadia Mono,Consolas,monospace!important;font-size:20px!important}.login-links{justify-content:space-between;margin-top:12px;display:flex}.login-title{text-align:center;margin:0 0 12px;font-size:18px}.btn.wide.login-apply{margin-top:10px}.layout{grid-template-columns:290px 1fr;height:100%;display:grid}.main{min-width:0;height:100%;overflow:hidden}.empty-main{height:100%;color:var(--text-faint);text-align:center;place-items:center;padding:24px;display:grid}@media (width<=720px){.layout{grid-template-columns:1fr}.layout.has-channel .sidebar,.layout:not(.has-channel) .main{display:none}}.layout.single{grid-template-columns:1fr}.layout.single .sidebar{border-right:0}.layout.single .ch-head{padding-left:16px}.layout.single .ch-head .back{display:none}.sidebar{background:var(--bg-side);border-right:1px solid var(--line);flex-direction:column;height:100%;min-height:0;display:flex}.side-head{justify-content:space-between;align-items:center;padding:12px 12px 8px 16px;display:flex}.brand{color:var(--primary);font-size:20px;font-weight:800}.brand-update{background:var(--primary);color:var(--primary-text);vertical-align:4px;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;margin-left:8px;padding:2px 8px 2px 6px;font-size:11px;font-weight:700;line-height:16px;display:inline-flex}.brand-update:hover:not(:disabled){filter:brightness(1.08)}.brand-update:disabled{opacity:.6;cursor:default}.me-btn{cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;max-width:60%;padding:4px 8px;display:flex}.me-btn:hover{background:var(--bg-hover)}.me-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.conn-banner{color:#6b4100;background:#fbe3c4;border-radius:8px;margin:0 12px 8px;padding:6px 10px;font-size:13px}.side-actions{flex-wrap:wrap;gap:6px;padding:0 12px 10px;display:flex}.side-list{flex:1;padding-bottom:16px;overflow-y:auto}.side-section{padding:4px 0}.side-title{color:var(--text-faint);padding:8px 16px 4px;font-size:12px;font-weight:600}.side-empty{color:var(--text-faint);padding:16px;font-size:14px}.side-version{text-align:center;color:var(--text-faint);opacity:.8;padding:4px 16px 8px;font-size:11px}.ch-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;min-height:38px;margin:1px 8px;padding:6px 8px 6px 2px;display:flex;position:relative}.ch-row+.ch-row:before{content:"";background:var(--line);height:1px;position:absolute;top:-1px;left:8px;right:8px}.ch-row:hover{background:var(--bg-hover)}.ch-row.active{background:var(--bg-active)}.ch-row.dragging{background:var(--primary-soft);box-shadow:0 2px 8px #00000026}.ch-row.unread .ch-name{font-weight:700}.drag-handle{width:14px;color:var(--text-faint);cursor:grab;letter-spacing:-3px;opacity:0;touch-action:none;text-align:center;flex:none;font-size:12px}.ch-row:hover .drag-handle,.ch-row.dragging .drag-handle{opacity:1}@media (hover:none){.drag-handle{opacity:.6;width:20px}}.ch-icon{text-align:center;width:22px;color:var(--text-soft);flex:none;justify-content:center;display:inline-flex}.ch-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ch-muted{opacity:.7;font-size:12px}.ch-time{color:var(--text-faint);flex:none;font-size:11px}.badge{background:var(--badge);color:#fff;text-align:center;border-radius:10px;flex:none;min-width:20px;padding:1px 7px;font-size:11px;font-weight:700}.badge.muted{background:var(--text-faint)}.avatar{color:#fff;border-radius:30%;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex;position:relative}.avatar-img{object-fit:cover;border-radius:inherit;background:var(--bg-soft);width:100%;height:100%;position:absolute;inset:0}.presence-dot{z-index:1;border:2px solid var(--bg);background:var(--text-faint);border-radius:50%;width:30%;min-width:8px;height:30%;min-height:8px;position:absolute;bottom:-2px;right:-2px}.presence-dot.online{background:#2fb36b}.presence-dot.away{background:#e3a21a}.channel{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.drop-overlay{z-index:30;border:2px dashed var(--primary);border-radius:var(--radius);background:color-mix(in srgb, var(--primary-soft) 85%, transparent);color:var(--primary);pointer-events:none;place-items:center;font-size:17px;font-weight:700;display:grid;position:absolute;inset:8px}.ch-head{border-bottom:1px solid var(--line);align-items:center;gap:6px;min-height:56px;padding:8px 12px 8px 16px;display:flex}.ch-head .back{display:none}@media (width<=720px){.ch-head{padding-left:6px}.ch-head .back{display:block}}.ch-head-text{flex:1;min-width:0}.ch-head h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;overflow:hidden}.ch-head-icon{color:var(--text-faint);margin-right:6px}.ch-sub{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.ch-sub:hover{text-decoration:underline}.ch-head-actions{align-items:center;gap:2px;display:flex}.star.on{color:#e0a800}.join-bar{border-top:1px solid var(--line);background:var(--bg-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.msg-scroll-wrap{flex:1;min-height:0;position:relative}.msg-scroll{overflow-anchor:none;height:100%;overflow-y:auto}.msg-list{padding:8px 0 12px}.channel-start{color:var(--text-faint);padding:24px 20px 8px;font-size:14px}.day-divider,.unread-divider{color:var(--text-faint);align-items:center;gap:10px;margin:14px 20px 6px;font-size:12px;display:flex}.day-divider:before,.day-divider:after,.unread-divider:before,.unread-divider:after{content:"";border-top:1px solid var(--line);flex:1}.unread-divider{color:var(--badge);font-weight:700}.unread-divider:before,.unread-divider:after{border-color:var(--badge)}.jump-latest{border:1px solid var(--line);background:var(--bg);box-shadow:var(--shadow);cursor:pointer;border-radius:18px;padding:6px 14px;font-size:13px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.msg{gap:10px;padding:6px 20px 4px 16px;transition:background .6s;display:flex;position:relative}.msg.compact{padding-top:1px}.msg:hover{background:var(--bg-soft)}.msg.highlight{background:var(--highlight)}.msg-gutter{flex:none;justify-content:center;width:36px;display:flex}.msg-side-time{white-space:nowrap;color:var(--text-faint);visibility:hidden;font-size:10px;line-height:22px}.msg:hover .msg-side-time{visibility:visible}.msg-main{flex:1;min-width:0}.msg-head{align-items:baseline;gap:8px;display:flex}.msg-sender{font-size:14px}.msg-time{color:var(--text-faint);font-size:11px}.msg-body{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;width:fit-content;max-width:calc(100% - 42px);padding:6px 12px}.msg:not(.compact)>.msg-main>.msg-body,.reply-main>.msg-body{position:relative}.msg:not(.compact)>.msg-main>.msg-body:before,.reply-main>.msg-body:before{content:"";box-sizing:border-box;background:var(--bg);border:0 solid var(--line);border-width:0 0 1px 1px;width:7px;height:7px;position:absolute;top:6px;left:-4px;transform:rotate(45deg)}.msg.mine:not(.compact)>.msg-main>.msg-body:before,.reply.mine>.reply-main>.msg-body:before{border-width:1px 1px 0 0;left:auto;right:-4px}.msg-deleted{color:var(--text-faint);font-size:14px;font-style:italic}.msg-forwarded{color:var(--text-soft);border-left:3px solid var(--line);margin:2px 0;padding-left:6px;font-size:12px;text-decoration:none;display:inline-block}.msg-forwarded:hover{text-decoration:underline}.msg.mine{flex-direction:row-reverse;padding-left:20px;padding-right:16px}.reply.mine{flex-direction:row-reverse}.mine>.msg-main,.mine>.reply-main{flex-direction:column;align-items:flex-end;display:flex}.mine>.msg-main>.msg-head,.mine>.reply-main>.msg-head{flex-direction:row-reverse}.mine>.msg-main>.attachments,.mine>.reply-main>.attachments{align-self:stretch;justify-items:end}.mine>.msg-main>.attachments>.media-tiles,.mine>.reply-main>.attachments>.media-tiles{justify-content:flex-end}.msg.mine>.msg-main>.replies{border-left:none;border-right:2px solid var(--line);align-self:stretch;padding-left:0;padding-right:10px}.msg.mine>.msg-actions{left:12px;right:auto}.reply.mine>.msg-actions{left:0;right:auto}.mention{background:var(--primary-soft);color:var(--primary);border-radius:4px;padding:0 2px;font-weight:600}.mention.me{background:var(--mention-bg);color:inherit}.channel-link{font-weight:600;text-decoration:none}.channel-link:hover{text-decoration:underline}.msg-actions{opacity:0;pointer-events:none;z-index:2;gap:2px;display:flex;position:absolute;top:2px;right:12px}.reply:hover>.msg-actions,.msg-actions:focus-within,.msg-actions.open{opacity:1;pointer-events:auto}.msg:hover:not(:has(.reply:hover))>.msg-actions{opacity:1;pointer-events:auto}.msg-actions .icon-btn{background:var(--bg);border:1px solid var(--line);width:30px;height:26px;font-size:15px}.msg-actions .act-btn{font-size:14px}@media (hover:none){.msg-actions{opacity:.6;pointer-events:auto}.msg-actions .act-btn{display:none}.msg,.reply{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.msg .composer{-webkit-user-select:text;user-select:text}}.reactions{grid-template-columns:repeat(5,max-content);gap:4px;margin-top:4px;display:grid}.mine>:is(.msg-main,.reply-main)>.reactions{justify-items:end}.mine>:is(.msg-main,.reply-main)>.reactions>.reaction:nth-child(5n+1):last-child{grid-column-start:5}.mine>:is(.msg-main,.reply-main)>.reactions>.reaction:nth-child(5n+1):nth-last-child(2){grid-column-start:4}.mine>:is(.msg-main,.reply-main)>.reactions>.reaction:nth-child(5n+1):nth-last-child(3){grid-column-start:3}.mine>:is(.msg-main,.reply-main)>.reactions>.reaction:nth-child(5n+1):nth-last-child(4){grid-column-start:2}.reaction{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:12px;align-items:center;gap:4px;padding:0 8px;font-size:13px;line-height:22px;display:inline-flex}.reaction:hover{border-color:var(--text-faint)}.reaction[aria-disabled=true]{cursor:default}.reaction.mine{border-color:var(--primary);background:var(--primary-soft)}.reaction-emoji{font-size:15px}.reaction-count{color:var(--text-soft);font-weight:600}.reaction.mine .reaction-count{color:var(--primary)}.emoji-picker{z-index:40;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:296px;max-width:calc(100vw - 16px);box-shadow:var(--shadow);padding:6px;position:fixed}.emoji-quick{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:6px;display:flex}.emoji-groups{max-height:220px;padding-top:2px;overflow-y:auto}.emoji-group-name{color:var(--text-faint);padding:6px 4px 2px;font-size:11px}.emoji-grid{grid-template-columns:repeat(8,1fr);display:grid}.emoji-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 0;font-size:20px;line-height:1}.emoji-btn.big{width:42px;padding:6px 0;font-size:24px}.emoji-btn:hover{background:var(--bg-hover)}.emoji-btn.mine{background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.replies{border-left:2px solid var(--line);margin-top:6px;padding-left:10px}.reply{border-radius:6px;gap:8px;padding:4px 0;transition:background .6s;display:flex;position:relative}.reply.highlight{background:var(--highlight)}.reply>.msg-actions{top:0;right:-8px}.reply-main{flex:1;min-width:0}.reply-main>.msg-body{max-width:calc(100% - 34px)}.composer.reply-composer{border-top:none;align-items:center;gap:6px;padding:6px 0 2px}.reply-composer textarea{padding:6px 10px}.composer.reply-composer .send{padding:6px 12px}.reply-composer .suggest{left:0;right:0}.close-reply{width:28px;height:28px;font-size:14px}.attachments{grid-template-columns:minmax(0,1fr);justify-items:start;gap:6px;margin-top:4px;display:grid}.media-tiles{flex-wrap:wrap;align-items:flex-start;gap:6px;max-width:100%;display:flex}.coded{flex-direction:column;align-items:flex-start;gap:3px;max-width:100%;display:flex}.mine>:is(.msg-main,.reply-main)>.attachments .coded{align-items:flex-end}.att-code{cursor:pointer;border:0;margin-left:0}.image-tile{border:1px solid var(--line);background:var(--bg-soft);cursor:zoom-in;border-radius:8px;max-width:100%;padding:0;display:block;position:relative;overflow:hidden}.image-tile img{object-fit:cover;width:100%;height:100%;display:block}.image-tile:hover{border-color:var(--text-faint)}.tile-badge{color:#fff;background:#0009;border-radius:4px;padding:0 5px;font-size:11px;font-weight:700;position:absolute;bottom:6px;left:6px}.video-tile{border:1px solid var(--line);background:var(--bg-soft);border-radius:8px;max-width:100%;overflow:hidden}.video-tile video{background:#000;width:100%;display:block}.video-tile.flash{animation:1.6s ease-out tile-flash}@keyframes tile-flash{0%,40%{box-shadow:0 0 0 3px var(--primary)}to{box-shadow:0 0 #0000}}.video-bar{align-items:center;gap:8px;padding:5px 6px 5px 10px;font-size:12px;display:flex}.video-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-soft);flex:1;overflow:hidden}.video-name small{color:var(--text-faint)}.video-comment-btn{white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;font-size:12px}.video-time{border:1px solid var(--primary);background:var(--primary-soft);color:var(--primary);font-variant-numeric:tabular-nums;cursor:pointer;vertical-align:1px;border-radius:10px;margin-right:6px;padding:0 7px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}.video-time:hover{background:var(--primary);color:var(--primary-text)}.file-card{border:1px solid var(--line);background:var(--bg);width:320px;max-width:100%;color:inherit;border-radius:8px;align-items:center;gap:10px;padding:8px 12px 8px 10px;text-decoration:none;display:flex}.file-card:hover{border-color:var(--text-faint);background:var(--bg-soft)}.file-card.expired,.file-card.expired:hover{border-color:var(--line);background:var(--bg);color:var(--text-faint)}.file-card.expired .file-icon{opacity:.5}.file-icon{flex:none;font-size:26px;line-height:1}.file-text{flex:1;min-width:0;display:grid}.file-text b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.file-text small{color:var(--text-faint);font-size:12px}.file-down{color:var(--text-soft);flex:none}.composer{border-top:1px solid var(--line);padding:10px 16px 14px;padding-bottom:max(14px, env(safe-area-inset-bottom));flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex;position:relative}.composer.dropping{background:var(--primary-soft)}.composer-row{flex:0 0 100%;min-width:0}.composer textarea{resize:none;border:1px solid var(--line);background:var(--bg);border-radius:10px;outline:none;flex:1;min-width:0;max-height:200px;padding:9px 12px;line-height:1.45}.composer textarea:focus{border-color:var(--primary)}.composer .send{padding:9px 14px}.make-menu{flex:none}.make-menu>.icon-btn{width:36px;height:38px;font-size:20px}.composer .attach{flex:none;width:36px;height:38px;font-size:18px}.reply-composer .attach{width:30px;height:30px;font-size:16px}.video-chip{color:var(--primary);align-items:center;gap:6px;font-size:13px;display:flex}.video-chip>span{background:var(--primary-soft);font-variant-numeric:tabular-nums;border-radius:10px;padding:1px 10px}.video-chip .icon-btn{width:24px;height:24px;font-size:12px}.pending-files{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.pending-file{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:none;align-items:center;gap:8px;width:220px;padding:6px 4px 6px 6px;display:flex;position:relative;overflow:hidden}.pending-file.error{border-color:var(--danger)}.pending-thumb{object-fit:cover;background:var(--bg-soft);border-radius:6px;flex:none;width:40px;height:40px}.pending-thumb.icon{place-items:center;font-size:22px;display:grid}.pending-text{flex:1;min-width:0;line-height:1.3;display:grid}.pending-text b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pending-text small{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;overflow:hidden}.pending-file.error small{color:var(--danger);white-space:normal}.pending-bar{background:var(--line);height:3px;position:absolute;bottom:0;left:0;right:0}.pending-bar>span{background:var(--primary);height:100%;transition:width .2s;display:block}.pending-remove{flex:none;width:26px;height:26px;font-size:12px}.suggest{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);z-index:5;max-height:280px;padding:4px;position:absolute;bottom:calc(100% - 4px);left:16px;right:16px;overflow-y:auto}.suggest-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:6px 8px;display:flex}.suggest-item.active,.suggest-item:hover{background:var(--bg-active)}.suggest-item small{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-box{gap:8px;display:flex;position:relative}.search-box .search{flex:1}.suggest.search-suggest{inset:calc(100% + 2px) 70px auto 0}.search-help{color:var(--text-faint);margin:8px 0 4px;font-size:12px}.search-help code{background:var(--bg-soft);border:1px solid var(--line);border-radius:4px;padding:0 3px}.results{gap:2px;margin-top:8px;display:grid}.result{cursor:pointer;border-radius:8px;gap:10px;padding:8px;display:flex}.result:hover,.result:focus-visible{background:var(--bg-soft)}.result-main{flex:1;min-width:0}.result-head{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px;display:flex}.result-ch{color:var(--text-soft);font-size:12px}.result-body{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.result-files{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}mark{background:var(--mention-bg);color:inherit;border-radius:2px}.more-btn{margin-top:6px}.menu-wrap{position:relative}.menu{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);min-width:170px;box-shadow:var(--shadow);z-index:10;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.menu.up{top:auto;bottom:calc(100% + 4px)}.menu.left{left:0;right:auto}.menu.at{visibility:hidden;z-index:40;position:fixed;top:0;left:0;right:auto}.menu-item{text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;width:100%;padding:8px 10px;font-size:14px;display:block}.menu-item:hover{background:var(--bg-hover)}.menu-item.danger{color:var(--danger)}.overlay{z-index:50;background:#00000059;grid-template-rows:minmax(0,1fr);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);width:100%;max-width:440px;max-height:100%;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex}.modal.wide{max-width:600px}.modal-head{justify-content:space-between;align-items:center;padding:14px 14px 6px 20px;display:flex}.modal-head h2{margin:0;font-size:17px}.modal-body{padding:8px 20px 20px;overflow-y:auto}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-actions.left{justify-content:flex-start;margin-top:6px}.modal-actions.spread{border-top:1px solid var(--line);justify-content:flex-start;margin-top:20px;padding-top:16px}.app-version{color:var(--text-soft);align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.confirm-text{margin:4px 0 0}.sub-title{margin:22px 0 4px;font-size:15px}.radio-group{gap:8px;display:grid}.radio{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.radio span{display:grid}.radio small{color:var(--text-soft)}.toggle-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.toggle-row label{cursor:pointer;align-items:center;gap:8px;display:flex}.avatar-edit{gap:6px;margin:-6px 0 16px;display:grid}.avatar-edit-buttons{flex-wrap:wrap;gap:6px;display:flex}.avatar-edit small{font-size:12px}.avatar-edit .error{margin:0}.avatar-progress{color:var(--text-soft);padding-bottom:6px;font-size:13px;position:relative}.who-group{margin-bottom:12px}.who-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:4px 0;display:flex}.who-emoji{font-size:22px}.profile-top{align-items:center;gap:12px;margin-bottom:16px;display:flex}.profile-top div{display:grid}.profile-top small{color:var(--text-faint)}.pick-list{gap:2px;margin-top:10px;display:grid}.pick-row{border-radius:8px;align-items:center;gap:10px;padding:7px 4px;display:flex}.pick-row:hover{background:var(--bg-soft)}.pick-main{flex:1;min-width:0;display:grid}.pick-main b,.pick-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pick-main small{color:var(--text-faint)}.tag{color:var(--primary);background:var(--primary-soft);border-radius:4px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:500}.ai-tag{color:#fff;background:#d97757;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700;line-height:16px}.toasts{z-index:100;pointer-events:none;gap:8px;width:max-content;max-width:calc(100% - 32px);display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow);background:#2b302d;border-radius:10px;padding:9px 16px;font-size:14px}.viewer{z-index:60;color:#fff;touch-action:pinch-zoom;background:#0a0c0bf0;flex-direction:column;display:flex;position:fixed;inset:0}.viewer-bar{background:#00000059;flex:none;align-items:center;gap:8px;height:56px;padding:0 10px 0 16px;display:flex}.viewer-info{flex:1;min-width:0;line-height:1.3;display:grid}.viewer-info b,.viewer-info small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-info small{color:#ffffffa6;font-size:12px}.viewer-count{color:#ffffffbf;font-variant-numeric:tabular-nums;padding:0 4px;font-size:13px}.viewer .btn{color:#fff;background:#ffffff1a;border-color:#ffffff40;text-decoration:none}.viewer .btn:hover:not(:disabled){background:#fff3}.viewer-close{color:#fff;font-size:18px}.viewer-close:hover{background:#ffffff26}.viewer-stage{flex:1;place-items:center;min-height:0;padding:12px;display:grid}.viewer-img{object-fit:contain;-webkit-user-select:none;user-select:none;grid-area:1/1;max-width:100%;max-height:100%}.viewer-img.loading{opacity:0}.viewer-nav{color:#fff;cursor:pointer;background:#00000059;border:none;border-radius:10px;width:48px;height:72px;font-size:40px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav:hover{background:#0009}.viewer-nav.prev{left:10px}.viewer-nav.next{right:10px}@media (width<=720px){.viewer-bar{gap:4px;padding-left:12px}.viewer-nav{width:36px;height:56px;font-size:30px}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.link.small{font-size:13px}.card{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:380px;max-width:100%;margin-top:4px;padding:10px 12px}.card-kind{color:var(--primary);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.card-tag{color:var(--text-soft);background:var(--bg-soft);border-radius:4px;padding:0 5px;font-weight:500}.card-title{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 8px;font-size:15px;font-weight:700}.card-foot{flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px;display:flex}.card-note{color:var(--text-faint);font-size:12px}.card-actions{gap:6px;margin-left:auto;display:flex}.poll-options{gap:6px;display:grid}.poll-option{border:1px solid var(--line);background:var(--bg);border-radius:8px;align-items:stretch;min-height:40px;display:flex;position:relative;overflow:hidden}.poll-bar{background:var(--bg-hover);pointer-events:none;transition:width .4s;position:absolute;inset:0 auto 0 0}.poll-option.mine{border-color:var(--primary)}.poll-option.mine .poll-bar{background:var(--primary-soft)}.poll-option.picked{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.poll-option.leading .poll-label{font-weight:700}.poll-pick{text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 4px 6px 10px;display:flex;position:relative}button.poll-pick{cursor:pointer}.poll-mark{border:1.5px solid var(--text-faint);width:20px;height:20px;color:var(--primary-text);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.poll-mark.box{border-radius:5px}.poll-option.picked .poll-mark{background:var(--primary);border-color:var(--primary)}.poll-mark.done{width:16px;color:var(--primary);border:none;font-size:14px}.poll-label{overflow-wrap:anywhere;font-size:14px}.poll-count{min-width:52px;color:var(--text-soft);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;flex:none;padding:0 10px;font-size:13px;font-weight:700;position:relative}.poll-count:not(:disabled):hover{color:var(--primary);text-decoration:underline}.poll-count:disabled{cursor:default}.poll-option.mine .poll-count{color:var(--primary)}.poll-card.closed .poll-pick{color:var(--text-soft)}.poll-card.closed .poll-option.leading .poll-pick{color:var(--text)}.who-label{overflow-wrap:anywhere;flex:1;min-width:0}.roulette-status{color:var(--text-soft);margin-bottom:8px;font-size:13px}.roulette-status.result{color:var(--text);font-size:16px;font-weight:800;animation:.45s ease-out pop}@keyframes pop{0%{opacity:.3;transform:scale(.85)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.roulette-entries{flex-wrap:wrap;gap:6px;display:flex}.roulette-entry{border:1px solid var(--line);background:var(--bg);border-radius:16px;align-items:center;gap:6px;max-width:100%;padding:3px 10px 3px 4px;font-size:13px;transition:background 80ms,opacity .3s;display:inline-flex}.roulette-entry.lit{color:#2b2300;background:#ffd84d;border-color:#e3b400}.roulette-entry.winner{color:#2b2300;background:#ffe680;border-color:#e3b400;font-weight:800;animation:.45s ease-out pop;box-shadow:0 0 0 3px #ffd20059}.roulette-entry.lost{opacity:.55}.hook-list{gap:8px;margin-top:12px;display:grid}.hook-row{border:1px solid var(--line);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.hook-icon{font-size:20px;line-height:1.4}.hook-main{flex:1;min-width:0;display:grid}.hook-main small{color:var(--text-faint);font-size:12px}.warn-box{background:var(--mention-bg);border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:14px}.copy-row{align-items:center;gap:8px;display:flex}.token-box{overflow-wrap:anywhere;background:var(--bg-soft);border:1px solid var(--line);-webkit-user-select:all;user-select:all;border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.curl-box{white-space:pre-wrap;overflow-wrap:anywhere;color:#e6ece9;background:#1f2423;border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.option-rows{gap:6px;display:grid}.option-row{align-items:center;gap:6px;display:flex}.option-row input{flex:1;min-width:0}.add-option{justify-self:start;margin-top:6px}.toggle-list{gap:8px;margin-top:4px;display:grid}.toggle-list label{cursor:pointer;align-items:center;gap:8px;display:flex}.closes-input{border:1px solid var(--line);background:var(--bg);border-radius:8px;justify-self:start;margin-left:26px;padding:6px 8px}
