:root{--mg-ink:#0a2342;--mg-text:#12283c;--mg-muted:#5a7284;--mg-muted2:#93a9b6;--mg-brand:#0798a8;--mg-brand-dark:#046d7a;--mg-brand-bg:#e4f6f8;--mg-turquoise:#00b6c7;--mg-cta:#f0a83f;--mg-cta-ink:#fff;--mg-bg:#f5fafb;--mg-panel:#fff;--mg-border:#dcebee;--mg-keyline:linear-gradient(90deg,#0a2342 0%,#0798a8 45%,#00b6c7 78%,#f0a83f 100%);--st-prop-bg:#fdf3d7;--st-prop-fg:#95680a;--st-go-bg:#dff5e6;--st-go-fg:#1d7a43;--st-doing-bg:#e0f0fb;--st-doing-fg:#20618f;--st-done-bg:#e8eef2;--st-done-fg:#4a6373;--st-ng-bg:#fdecea;--st-ng-fg:#c0392b;--st-hold-bg:#f0f1f1;--st-hold-fg:#7a8489;--mg-radius-s:8px;--mg-radius-m:10px;--mg-radius-l:14px;--mg-shadow-card:0 2px 10px #0a505c0f;--mg-shadow-float:0 12px 40px #0a234238;--mg-focus-ring:#c8ecf0;--mg-fs-note:14px;--mg-fs-body:16px;--mg-fs-head:20px;--mg-fs-title:24px;--mg-fw-regular:400;--mg-fw-bold:700;--text:var(--mg-text);--muted:var(--mg-muted);--muted2:var(--mg-muted2);--bg:var(--mg-bg);--chat-bg:#edf4f6;--panel:var(--mg-panel);--border:var(--mg-border);--accent:var(--mg-brand);--accent-dark:var(--mg-brand-dark);--accent-weak:var(--mg-brand-bg);--bubble-mine:var(--mg-brand-bg);--bubble-other:var(--mg-panel);--mention:var(--st-prop-fg);--mention-bg:var(--st-prop-bg);--badge:var(--mg-cta);--danger:var(--st-ng-fg);--ok:var(--st-go-fg);--line-green:#06c755;--line-green-bg:#e4f9ec;--line-green-border:#b7ecc7;--line-green-ink:#0a7a3d;--line-win-bg:#eef1ef;--line-win-border:#dfe4e1;--line-win-muted:#8a8f8c;--line-mine:#8fe058;--line-mine-ink:#173d0a;font:var(--mg-fs-body)/1.7 system-ui, "Hiragino Sans", "Noto Sans JP", sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{overscroll-behavior-y:none;margin:0}#root{flex-direction:column;height:100svh;display:flex}button{font:inherit}input,textarea{font:inherit;color:inherit}.boot{height:100svh;color:var(--muted);place-items:center;display:grid}.login-wrap{background:var(--bg);place-items:center;min-height:100svh;padding:20px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:22px;display:flex}.login-brand{align-items:center;gap:13px;display:flex}.login-brand img{border-radius:10px}.login-brand h1{font-size:var(--mg-fs-head);margin:0}.login-brand .wm{font-weight:var(--mg-fw-bold);letter-spacing:2px;color:var(--mg-ink)}.login-brand .mod{font-weight:var(--mg-fw-bold);color:var(--mg-ink)}.login-app-sub{font-size:var(--mg-fs-note);color:var(--muted);margin-top:2px}.login-sub{color:var(--muted);font-size:var(--mg-fs-note);margin:0}.login-card label{font-size:var(--mg-fs-note);color:var(--muted);flex-direction:column;gap:5px;display:flex}.login-card input{border:1px solid var(--border);font-size:var(--mg-fs-body);background:#fff;border-radius:8px;padding:10px 12px}.login-card input:focus{outline:2px solid var(--accent);outline-offset:-1px}.login-error{color:var(--danger);font-size:var(--mg-fs-note)}.login-ok{color:var(--ok);font-size:var(--mg-fs-note)}.login-link{color:var(--accent);font-size:var(--mg-fs-note);cursor:pointer;background:0 0;border:none;padding:4px}.login-note{font-size:var(--mg-fs-note);color:var(--muted2);margin:0}.btn{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:9px;padding:10px 14px}.btn.primary{background:var(--mg-cta);border-color:var(--mg-cta);color:var(--mg-cta-ink);font-weight:var(--mg-fw-bold)}.btn.primary:hover{filter:brightness(1.06)}.btn.primary:disabled{opacity:.5}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:var(--danger)}.apphead{padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--panel);z-index:5;flex:none;align-items:center;gap:8px;display:flex;position:relative}.apphead:after{content:"";background:var(--mg-keyline);height:2.5px;position:absolute;bottom:0;left:0;right:0}.apphead .title{font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.apphead .sub{font-size:var(--mg-fs-note);color:var(--muted);font-weight:400}.search-bar{background:var(--panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:4px;padding:8px 12px;display:flex}.search-input{border:1px solid var(--border);min-width:0;font-size:var(--mg-fs-note);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:7px 10px}.search-count{font-size:var(--mg-fs-note);color:var(--muted2);white-space:nowrap;text-align:right;min-width:44px;padding:0 2px}.search-nav{font-size:var(--mg-fs-body);min-width:30px;min-height:30px}.search-nav:disabled{opacity:.35;cursor:default}.brandmark{align-items:center;gap:9px;min-width:0;display:inline-flex}.brandmark .ring{flex:none;width:26px;height:26px;display:block}.brandmark .wm{font-weight:var(--mg-fw-bold);letter-spacing:2px;color:var(--mg-ink);font-size:var(--mg-fs-body)}.brandmark .mod{font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);border-left:1px solid var(--mg-border);white-space:nowrap;margin-left:1px;padding-left:11px}.iconbtn{cursor:pointer;color:var(--accent);font-size:var(--mg-fs-title);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:6px;line-height:1;text-decoration:none;display:inline-flex}.iconbtn:active{background:var(--accent-weak)}.roomlist{background:var(--panel);flex:1;overflow-y:auto}.room-row{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.room-row:active{background:var(--accent-weak)}.room-row.active{background:var(--mg-brand-bg);box-shadow:inset 3px 0 0 var(--mg-brand)}.room-row.active .room-name{color:var(--mg-brand-dark)}.avatar{color:#fff;width:46px;height:46px;font-size:var(--mg-fs-head);font-weight:var(--mg-fw-bold);background:var(--mg-ink);object-fit:cover;border-radius:50%;flex:0 0 46px;place-items:center;display:grid}.avatar.space{background:var(--mg-brand)}.avatar.sm{width:32px;height:32px;font-size:var(--mg-fs-note);flex-basis:32px}.room-main{flex:1;min-width:0}.room-name{font-weight:var(--mg-fw-bold);font-size:var(--mg-fs-body)}.room-preview{color:var(--muted);font-size:var(--mg-fs-note);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.room-side{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.room-time{font-size:var(--mg-fs-note);color:var(--muted2)}.unread-badge{background:var(--st-hold-bg);color:var(--st-hold-fg);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;min-width:20px;height:18px;padding:0 6px;display:grid}.unread-badge.self{background:var(--st-ng-fg);color:#fff}.list-empty{text-align:center;color:var(--muted);font-size:var(--mg-fs-note);padding:40px 20px}.list-section{font-size:var(--mg-fs-note);color:var(--muted2);background:var(--panel);padding:8px 14px 4px}.xsearch{background:var(--panel);flex-direction:column;flex:1;min-height:0;display:flex}.xsearch-bar{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.xsearch-bar .search-input{flex:1}.xsearch-results{flex:1;overflow-y:auto}.xsearch-status{text-align:center;color:var(--muted);font-size:var(--mg-fs-note);padding:40px 20px}.xsearch-row{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--border);background:0 0;width:100%;padding:10px 14px;display:block}.xsearch-row:active{background:var(--accent-weak)}.xsearch-row-top{justify-content:space-between;gap:8px;margin-bottom:3px;display:flex}.xsearch-room{font-weight:var(--mg-fw-bold);font-size:var(--mg-fs-note);color:var(--mg-ink)}.xsearch-time{font-size:var(--mg-fs-note);color:var(--muted2);flex:none}.xsearch-snippet{font-size:var(--mg-fs-note);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-screen{background:var(--chat-bg);flex-direction:column;flex:1;min-height:0;display:flex}.msg-scroll{flex:1;padding:16px 24px 8px;overflow-y:auto}.msg-scroll>*{max-width:980px;margin-left:auto;margin-right:auto}.load-more{font-size:var(--mg-fs-note);margin:4px auto 12px;display:block}.day-sep{place-items:center;margin:4px 0 14px;display:grid}.day-sep span{color:var(--muted);font-size:var(--mg-fs-note)}.msg-row{align-items:flex-start;gap:10px;margin:0 0 14px;display:flex}.msg-row.mine{flex-direction:row-reverse}.msg-row>.avatar.sm{flex:0 0 32px;width:32px;height:32px}.avatar.line{background:var(--line-green)}.msg-highlight .bubble,.msg-highlight .msg-topic-row{animation:2.4s ease-out forwards msg-highlight-ring}@keyframes msg-highlight-ring{0%,70%{box-shadow:0 0 0 3px var(--mg-cta)}to{box-shadow:0 0 0 3px #0000}}@media (prefers-reduced-motion:reduce){.msg-highlight .bubble,.msg-highlight .msg-topic-row{box-shadow:0 0 0 3px var(--mg-cta);animation:none}}.msg-col{flex-direction:column;min-width:0;max-width:76%;display:flex}.msg-row.mine .msg-col{align-items:flex-end}.msg-line{align-items:flex-end;gap:6px;max-width:100%;display:flex}.msg-row.mine .msg-line{flex-direction:row-reverse}.msg-head{flex-wrap:wrap;align-items:center;gap:8px;min-height:22px;margin-bottom:3px;display:flex}.msg-row.mine .msg-head{justify-content:flex-end}.msg-name{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--mg-ink)}.msg-name.link{font:inherit;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--mg-ink);cursor:pointer;background:0 0;border:none;padding:0}.msg-name.link:hover{text-decoration:underline}.msg-time{font-size:var(--mg-fs-note);color:var(--muted);flex:none}.inbound-mark{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);background:var(--st-hold-bg);color:var(--st-hold-fg);border-radius:5px;padding:0 6px;line-height:18px}.inbound-mark.line{background:var(--line-green-bg);color:var(--line-green-ink)}.fuda{height:19px;line-height:19px;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);cursor:pointer;border:none;border-radius:999px;padding:0 9px}.fuda.todo{background:var(--st-ng-bg);color:var(--st-ng-fg)}.fuda.doing{background:var(--st-doing-bg);color:var(--st-doing-fg)}.fuda.done{background:var(--st-done-bg);color:var(--st-done-fg)}.msg-ops{opacity:0;pointer-events:none;align-items:center;gap:4px;margin-left:4px;display:inline-flex}.msg-row.mine .msg-ops{order:-1;margin-left:0;margin-right:4px}.msg-row:hover .msg-ops,.msg-topic-row:hover .msg-ops,.msg-ops:focus-within{opacity:1;pointer-events:auto}.msg-ops:has(.msg-menu){opacity:1;pointer-events:auto}@media (hover:none){.msg-ops{opacity:1;pointer-events:auto}}.msg-ops>button,.msg-ops .op-more{border:1px solid var(--mg-border);background:var(--mg-panel);height:22px;color:var(--muted);font-size:var(--mg-fs-note);cursor:pointer;border-radius:6px;padding:0 8px;line-height:1}.msg-ops .op-line{border-color:var(--line-green-border);color:var(--line-green-ink);font-weight:var(--mg-fw-bold)}.msg-ops>button.on{background:var(--mg-brand-bg);border-color:var(--mg-brand)}.msg-ops .op-more{padding:0 6px}.msg-topic-row{border-radius:6px;align-items:center;gap:8px;width:fit-content;margin:2px 0 14px 42px;display:flex}.msg-topic-name{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--mg-ink)}.quote-box{text-align:left;border:none;border-left:3px solid var(--mg-brand);background:var(--mg-bg);width:100%;max-width:100%;font:inherit;font-size:var(--mg-fs-note);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:baseline;gap:8px;margin:0 0 6px;padding:3px 8px;display:flex;overflow:hidden}.quote-box .quote-name,.quote-box .quote-topic{color:var(--mg-ink);flex:none}.quote-box .quote-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.quote-box.deleted{color:var(--muted2)}.msg-row.mine .quote-box{background:#ffffffb3}.unread-line{font-size:var(--mg-fs-note);color:var(--st-ng-fg);align-items:center;gap:10px;margin:6px 0 12px;display:flex}.unread-line:before,.unread-line:after{content:"";opacity:.4;background:currentColor;flex:1;height:1px}.bubble{background:var(--bubble-other);border:1px solid var(--mg-border);font-size:var(--mg-fs-note);word-break:break-word;white-space:pre-wrap;border-radius:4px 12px 12px;max-width:100%;padding:8px 12px;line-height:1.6}.msg-row.mine .bubble{background:var(--bubble-mine);border-color:#0000;border-radius:12px 4px 12px 12px}.bubble a{color:var(--accent)}.bubble code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--mg-fs-note);background:#0a234212;border-radius:4px;padding:1px 5px}.mention{color:var(--mention);font-weight:var(--mg-fw-bold)}.mention.me{background:var(--mention-bg);border-radius:4px;padding:0 2px}.att-img{cursor:pointer;background:#ddd;border-radius:12px;max-width:100%;max-height:280px;margin-top:6px;display:block}.att-img.att-cloud,.att-cell.att-cloud{border:1px dashed var(--border);background:var(--accent-weak);color:var(--muted2);font-size:var(--mg-fs-title);justify-content:center;align-items:center;padding:0;display:flex}.att-cloud-btn{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.att-cloud-btn .size{color:var(--accent-dark)}.att-cloud-html{border:1px dashed var(--border);background:var(--panel);text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--accent);border-radius:12px;align-items:center;gap:8px;margin-top:6px;padding:10px 12px;display:flex}.att-cloud-btn:disabled,.att-cloud-html:disabled{opacity:.6;cursor:default}.att-file{background:var(--panel);border:1px solid var(--border);font-size:var(--mg-fs-note);border-radius:10px;align-items:center;gap:4px;max-width:240px;margin-top:6px;padding:8px 10px;display:flex}.att-file-open{min-width:0;color:var(--accent);flex:1;align-items:center;gap:8px;text-decoration:none;display:flex;overflow:hidden}.att-file .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.att-file .size{color:var(--muted2);font-size:var(--mg-fs-note);flex:none}.att-file-save{color:var(--muted2);font-size:var(--mg-fs-body);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:3px 5px;line-height:1}.att-file-save:hover{color:var(--accent);background:var(--accent-weak)}.att-album{border-radius:12px;gap:2px;width:280px;max-width:min(280px,72vw);margin-top:6px;display:grid;overflow:hidden}.att-cell{aspect-ratio:1;background:var(--accent-weak);cursor:pointer;border:none;width:100%;margin:0;padding:0;display:block;position:relative;overflow:hidden}.att-cell img{object-fit:cover;width:100%;height:100%;display:block}.att-cell.loading{background:var(--accent-weak);cursor:default}.att-cell.failed{background:var(--accent-weak);cursor:pointer;border:1px dashed var(--border);color:var(--muted2);font-size:var(--mg-fs-head)}.att-failed{color:var(--muted2)}.att-img.att-failed{font-size:var(--mg-fs-note);text-align:center;line-height:1.5}.att-html-loading{font-size:var(--mg-fs-note);color:var(--muted2);background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-top:6px;padding:8px 12px}.att-html{border:1px solid var(--border);background:var(--panel);border-radius:12px;width:100%;margin-top:6px;overflow:hidden}.att-html-head{background:var(--mg-brand-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 10px;display:flex}.att-html-name{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--mg-brand-dark);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.att-html-expand{border:1px solid var(--mg-brand);background:var(--panel);color:var(--mg-brand-dark);font-size:var(--mg-fs-note);cursor:pointer;border-radius:999px;flex:none;padding:3px 10px}.att-html-expand:hover{background:var(--mg-brand);color:#fff}.att-html-frame{background:#fff;border:none;width:100%;height:420px;max-height:420px;display:block}.html-viewer{z-index:100;background:var(--bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0}.html-viewer-head{background:var(--panel);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.html-viewer-name{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--mg-ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.html-viewer-head .close{background:var(--mg-brand-bg);color:var(--mg-brand-dark);width:36px;height:36px;font-size:var(--mg-fs-body);cursor:pointer;border:none;border-radius:50%;flex:none}.html-viewer-frame{background:#fff;border:none;flex:1;width:100%}.bubble.deleted{box-shadow:none;color:var(--muted2);font-size:var(--mg-fs-note);border:1px dashed var(--border);background:0 0;padding:6px 12px;font-style:italic}.msg-time .edited{color:var(--muted2);font-size:var(--mg-fs-note);margin-right:5px}.bubble.pending{opacity:.65}.bubble.failed{opacity:.9;border:1px solid var(--danger)}.send-status{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.send-status.failed{color:var(--danger)}.pending-dot{background:var(--muted2);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite pending-pulse;display:inline-block}@keyframes pending-pulse{0%,to{opacity:.25}50%{opacity:1}}.resend-btn{color:var(--danger);font-weight:var(--mg-fw-bold);font-size:var(--mg-fs-note);cursor:pointer;background:0 0;border:none;padding:0 2px;text-decoration:underline}.resend-x{color:var(--muted2);font-size:var(--mg-fs-note);cursor:pointer;background:0 0;border:none;padding:0 2px}.msg-menu-wrap{display:inline-flex;position:relative}.msg-menu-btn{color:var(--muted2);cursor:pointer;font-size:var(--mg-fs-body);background:0 0;border:none;border-radius:5px;margin-left:3px;padding:0 2px;line-height:1}.msg-menu-btn:hover{color:var(--muted);background:var(--mg-brand-bg)}.menu-backdrop{z-index:40;position:fixed;inset:0}.msg-menu{z-index:41;background:var(--panel);border:1px solid var(--border);box-shadow:var(--mg-shadow-float);border-radius:10px;min-width:168px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden}.msg-menu button{text-align:left;width:100%;font-size:var(--mg-fs-note);cursor:pointer;color:var(--text);white-space:nowrap;background:0 0;border:none;padding:11px 14px;display:block}.msg-menu button:hover{background:var(--mg-brand-bg)}.msg-menu button.danger{color:var(--danger);border-top:1px solid var(--border)}.read-badge-wrap{margin-right:5px;display:inline-flex;position:relative}.read-badge{color:var(--muted2);cursor:pointer;font-size:var(--mg-fs-note);line-height:1;font-weight:var(--mg-fw-bold);background:0 0;border:none;padding:0}.read-badge:hover{color:var(--muted)}.read-badge-pop{z-index:41;background:var(--panel);border:1px solid var(--border);box-shadow:var(--mg-shadow-float);border-radius:10px;min-width:120px;max-height:200px;margin-bottom:4px;position:absolute;bottom:100%;right:0;overflow:hidden auto}.read-badge-name{font-size:var(--mg-fs-note);color:var(--text);white-space:nowrap;padding:8px 12px}.read-badge-name+.read-badge-name{border-top:1px solid var(--border)}.edit-box{background:var(--panel);border:1px solid var(--mg-brand);max-width:78vw;box-shadow:var(--mg-shadow-card);border-radius:14px;padding:8px}.edit-box textarea{resize:none;width:100%;font-size:var(--mg-fs-body);background:0 0;border:none;outline:none;min-width:220px;line-height:1.5}.edit-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.edit-actions .btn{font-size:var(--mg-fs-note);padding:6px 14px}.msg-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex;position:relative}.msg-row.mine .msg-actions{justify-content:flex-end}.react-chip{border:1px solid var(--border);background:var(--panel);font-size:var(--mg-fs-note);cursor:pointer;color:var(--muted);border-radius:999px;padding:2px 8px}.react-chip.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-dark)}.composer{background:var(--panel);border-top:1px solid var(--border);padding:10px 20px 14px;padding-bottom:calc(14px + env(safe-area-inset-bottom));flex:none;position:relative}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;border:1px solid var(--border);font-size:var(--mg-fs-body);background:var(--bg);border-radius:8px;flex:1;min-width:0;min-height:36px;max-height:120px;padding:7px 12px;line-height:1.5}.composer textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.composer-clip{border:1px solid var(--border);background:var(--panel);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:8px;flex:0 0 36px;place-items:center;display:grid}.composer-clip:disabled{opacity:.5;cursor:default}.send-btn{background:var(--mg-cta);height:36px;color:var(--mg-cta-ink);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);cursor:pointer;border:none;border-radius:8px;flex:none;padding:0 18px}.send-btn:disabled{background:var(--muted2);cursor:default}@media (width>=900px){.composer textarea{font-size:var(--mg-fs-note)}}.quote-band{border-left:3px solid var(--mg-brand);background:var(--mg-bg);font-size:var(--mg-fs-note);color:var(--muted);border-radius:4px;align-items:center;gap:8px;margin-bottom:8px;padding:5px 8px 5px 10px;display:flex}.quote-band strong{color:var(--mg-ink);flex:none}.quote-band span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.quote-band button{color:var(--muted);font-size:var(--mg-fs-note);cursor:pointer;background:0 0;border:none;padding:0 2px}.composer-notice{color:var(--danger);font-size:var(--mg-fs-note);white-space:pre-line;background:var(--accent-weak);cursor:pointer;border-radius:10px;margin-bottom:6px;padding:8px 12px;line-height:1.5}.composer-progress{color:var(--accent-dark);font-size:var(--mg-fs-note);padding:4px 12px 6px;line-height:1.4}.chat-screen{position:relative}.drop-overlay{z-index:60;pointer-events:none;background:color-mix(in srgb, var(--mg-brand-bg) 82%, transparent);place-items:center;display:grid;position:absolute;inset:0}.drop-overlay-inner{border:2.5px dashed var(--mg-brand);background:var(--mg-panel);box-shadow:var(--mg-shadow-card);font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-brand-dark);border-radius:16px;align-items:center;gap:10px;padding:22px 34px;display:flex}.drop-overlay-inner .drop-ic{font-size:var(--mg-fs-title);color:var(--mg-brand);line-height:1}.file-previews{gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.file-preview{flex:none;position:relative}.file-preview img{object-fit:cover;border-radius:10px;width:64px;height:64px;display:block}.file-preview .doc{background:var(--accent-weak);width:64px;height:64px;font-size:var(--mg-fs-note);color:var(--accent-dark);text-align:center;word-break:break-all;border-radius:10px;place-items:center;padding:4px;display:grid;overflow:hidden}.file-preview .rm{background:var(--text);color:#fff;width:20px;height:20px;font-size:var(--mg-fs-note);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.mention-pop{background:var(--panel);border:1px solid var(--border);z-index:20;border-radius:12px;max-height:220px;margin-bottom:4px;position:absolute;bottom:100%;left:10px;right:10px;overflow:hidden auto;box-shadow:0 -2px 16px #0000001a}.mention-pop button{border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font-size:var(--mg-fs-note);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px 12px;display:flex}.mention-pop button:last-child{border-bottom:none}.mention-pop button:active{background:var(--accent-weak)}.send-warning{color:#9a3412;font-size:var(--mg-fs-note);background:#fff7ed;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:6px 10px;display:flex}.send-warning button{color:inherit;cursor:pointer;font-size:var(--mg-fs-note);background:0 0;border:none}.line-window{background:var(--panel);border:1.5px solid var(--line-win-border);box-shadow:var(--mg-shadow-card);border-radius:14px;flex-direction:column;height:min(48vh,430px);min-height:240px;display:flex;position:relative;overflow:hidden}.line-drop-overlay{z-index:61;pointer-events:none;background:color-mix(in srgb, var(--line-green) 20%, transparent);place-items:center;display:grid;position:absolute;inset:0}.line-drop-overlay-inner{border:2.5px dashed var(--line-green);background:var(--panel);box-shadow:var(--mg-shadow-card);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--line-green);border-radius:14px;align-items:center;gap:8px;padding:16px 24px;display:flex}.line-head{background:linear-gradient(180deg, #08d15e, var(--line-green));color:#fff;flex:none;align-items:center;gap:8px;padding:8px 10px;display:flex}.line-head-avatar{background:var(--line-win-border);width:28px;height:28px;color:var(--line-win-muted);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);border-radius:50%;flex:none;place-items:center;display:grid}.line-head-main{flex:1;min-width:0}.line-head-name{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.line-head-badge{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);letter-spacing:.5px;background:#ffffff38;border-radius:5px;flex:none;padding:2px 6px}.line-partner-toggle{cursor:pointer;color:#fff;border:none;font-family:inherit}.line-scroll{background:var(--line-win-bg);flex:1;min-height:0;padding:10px 8px 6px;overflow-y:auto}.line-daysep{place-items:center;margin:2px 0 10px;display:grid}.line-daysep span{color:#fff;font-size:var(--mg-fs-note);background:#0000001f;border-radius:999px;padding:2px 12px}.line-group{align-items:flex-end;gap:6px;margin-bottom:9px;display:flex}.line-group.mine{flex-direction:row-reverse}.line-av{color:#6d7873;width:30px;height:30px;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);background:#c7cdc9;border-radius:50%;flex:0 0 30px;align-self:flex-end;place-items:center;display:grid}.line-bubbles{flex-direction:column;gap:3px;min-width:0;max-width:78%;display:flex}.line-group.mine .line-bubbles{align-items:flex-end}.line-entry-label{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--line-win-muted);margin:4px 2px 2px}.line-group.mine .line-entry-label{text-align:right;color:var(--mg-brand-dark)}.line-bwrap{align-items:flex-end;gap:4px;display:flex}.line-group.mine .line-bwrap{flex-direction:row-reverse}.line-bubble{background:var(--panel);color:#222;font-size:var(--mg-fs-note);white-space:pre-wrap;word-break:break-word;border-radius:16px 16px 16px 4px;max-width:100%;padding:7px 12px;line-height:1.5;box-shadow:0 1px #0000000a}.line-group.mine .line-bubble{background:var(--line-mine);color:var(--line-mine-ink);border-radius:16px 16px 4px}.line-bubble.failed{background:var(--st-ng-bg);color:var(--st-ng-fg);border:1px solid var(--danger)}.line-bubble a{color:inherit;text-decoration:underline}.file-link-chip{font-size:var(--mg-fs-note);background:color-mix(in srgb, currentColor 8%, transparent);border-radius:8px;align-items:center;gap:6px;margin-top:4px;padding:3px 6px;display:flex}.file-link-chip .file-link-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file-link-chip .file-link-badge{font-weight:var(--mg-fw-bold);color:var(--danger);white-space:nowrap;flex:none}.file-link-chip.revoked{opacity:.85}.line-meta{font-size:var(--mg-fs-note);color:var(--line-win-muted);white-space:nowrap;flex-direction:column;flex:none;align-items:center;line-height:1.35;display:flex}.line-group.mine .line-meta{align-items:flex-end}.line-sending-row{background:var(--accent-weak);color:var(--mg-ink);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);border-radius:8px;margin:4px 2px 0;padding:6px 10px}.line-composer{background:var(--panel);border-top:1px solid var(--line-win-border);flex:none;padding:6px 8px 7px}.line-composer-row{align-items:flex-end;gap:6px;display:flex}.line-composer-row textarea{resize:none;border:1px solid var(--line-win-border);font-size:var(--mg-fs-note);color:#222;background:#f7f8f7;border-radius:18px;flex:1;min-width:0;max-height:120px;padding:8px 13px;line-height:1.45}.line-composer-row textarea:focus{border-color:var(--line-green);outline:none}.line-send{background:var(--line-green);color:#fff;width:32px;height:32px;font-size:var(--mg-fs-note);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;display:grid}.line-send:disabled{background:var(--muted2)}.line-confirm-backdrop{z-index:120;background:#0a234259;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.line-confirm-box{background:var(--panel);width:100%;max-width:320px;box-shadow:var(--mg-shadow-float);text-align:center;border-radius:16px;padding:20px}.line-confirm-box p{font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);margin:0 0 6px}.line-confirm-preview{font-size:var(--mg-fs-note);color:var(--muted);background:var(--chat-bg);white-space:pre-wrap;text-align:left;word-break:break-word;border-radius:10px;max-height:120px;margin:10px 0 16px;padding:8px 10px;overflow-y:auto}.line-confirm-actions{gap:10px;display:flex}.line-confirm-actions button{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);cursor:pointer;border:none;border-radius:999px;flex:1;padding:10px}.line-confirm-cancel{background:var(--bg);color:var(--muted);border:1px solid var(--border)!important}.line-confirm-send{background:var(--line-green);color:#fff}.line-confirm-send:disabled{background:var(--muted2);cursor:not-allowed}.line-confirm-field{font-size:var(--mg-fs-note);color:var(--muted);text-align:left;flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.line-confirm-field input,.line-confirm-field select{border:1px solid var(--border);font-size:var(--mg-fs-body);background:var(--bg);border-radius:8px;padding:9px 12px}.line-confirm-note{font-size:var(--mg-fs-note);color:var(--muted);text-align:left;margin-bottom:16px}.line-confirm-error{color:#c0392b;font-size:var(--mg-fs-note);text-align:left;margin:4px 0 10px}@media (width<=480px){.line-window{height:min(52vh,380px)}}.files-tabs{background:var(--panel);border-bottom:1px solid var(--border);flex:none;display:flex}.files-tabs button{font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:11px 0}.files-tabs button.on{color:var(--mg-brand-dark);border-bottom-color:var(--mg-brand)}.files-body{background:var(--bg);flex:1;overflow-y:auto}.files-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:3px;padding:3px;display:grid}.files-thumb{aspect-ratio:1;cursor:pointer;background:var(--border);border:none;padding:0;position:relative;overflow:hidden}.files-thumb img{object-fit:cover;width:100%;height:100%;display:block}.files-thumb .thumb-ph{background:var(--border);width:100%;height:100%;font-size:var(--mg-fs-note);color:var(--muted2);place-items:center;display:grid}.files-thumb.checked img{opacity:.6}.thumb-check{border:1.5px solid var(--mg-brand);width:22px;height:22px;font-size:var(--mg-fs-note);color:var(--mg-brand-dark);font-weight:var(--mg-fw-bold);background:#ffffffd9;border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;right:6px}.thumb-check.on{background:var(--mg-brand);color:#fff;border-color:var(--mg-brand)}.files-list{padding:8px 0}.file-item{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:10px;padding:10px 14px;display:flex}.file-item .fi-main{flex-direction:column;flex:1;min-width:0;display:flex}.file-item .fi-name{font-size:var(--mg-fs-note);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-item .fi-sub{font-size:var(--mg-fs-note);color:var(--muted)}.file-item .btn{font-size:var(--mg-fs-note);padding:6px 14px}.files-actionbar{padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--border);font-size:var(--mg-fs-note);color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.img-viewer{z-index:100;background:#000000eb;place-items:center;display:grid;position:fixed;inset:0}.img-viewer img{object-fit:contain;max-width:100vw;max-height:100svh}.img-viewer .close{top:calc(10px + env(safe-area-inset-top));color:#fff;width:40px;height:40px;font-size:var(--mg-fs-head);cursor:pointer;background:#ffffff26;border:none;border-radius:50%;position:absolute;right:12px}.img-viewer-bar{padding:14px 14px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#00000080);flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.iv-dl{color:var(--mg-ink);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);cursor:pointer;background:#fffffff2;border:none;border-radius:999px;padding:11px 22px}.iv-dl:disabled{opacity:.6}.iv-msg{color:#fff;font-size:var(--mg-fs-note);background:#00000080;border-radius:8px;padding:4px 10px}.img-viewer-loading{aspect-ratio:1;text-align:center;background:#ffffff14;border-radius:12px;justify-content:center;align-items:center;width:60vw;max-width:320px;padding:12px;display:flex}.iv-restoring-msg{color:#ffffffd9;font-size:var(--mg-fs-note)}.img-viewer-error{color:#ffffffd9;width:60vw;max-width:320px;font-size:var(--mg-fs-note);text-align:center;background:#ffffff14;border-radius:12px;padding:20px}.iv-counter{top:calc(14px + env(safe-area-inset-top));color:#fff;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);pointer-events:none;background:#00000073;border-radius:999px;padding:4px 12px;position:absolute;left:50%;transform:translate(-50%)}.iv-nav{z-index:1;color:#fff;width:44px;height:44px;font-size:var(--mg-fs-title);cursor:pointer;background:#ffffff26;border:none;border-radius:50%;place-items:center;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.iv-nav.prev{left:10px}.iv-nav.next{right:10px}.iv-nav:hover{background:#ffffff47}.settings{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.card h2{font-size:var(--mg-fs-note);color:var(--muted);font-weight:var(--mg-fw-bold);margin:0 0 10px}.card .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.push-status{font-size:var(--mg-fs-note);margin-bottom:10px}.push-status.ok{color:var(--ok)}.push-status.warn{color:var(--mention)}.push-status.err{color:var(--danger)}.hint{font-size:var(--mg-fs-note);color:var(--muted);line-height:1.7}.sub-row{font-size:var(--mg-fs-note);color:var(--muted);border-top:1px solid var(--border);padding:8px 0}.sub-row .err{color:var(--danger)}.sub-row .ok{color:var(--ok)}.name-input{border:1px solid var(--border);font-size:var(--mg-fs-body);border-radius:8px;flex:1;min-width:120px;padding:9px 12px}.sheet-overlay{z-index:90;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:100%;max-width:640px;max-height:80svh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;animation:.18s ease-out sheet-in;display:flex}@keyframes sheet-in{0%{opacity:.6;transform:translateY(30px)}}.sheet-head{font-size:var(--mg-fs-body);justify-content:space-between;align-items:center;padding:12px 14px 6px;display:flex}.sheet-body{padding:0 14px 16px;overflow-y:auto}.toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom));background:var(--text);color:#fff;font-size:var(--mg-fs-note);z-index:200;border-radius:999px;max-width:90vw;padding:8px 18px;animation:.2s ease-out toast-in;position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}}.loading{color:var(--muted);font-size:var(--mg-fs-note);place-items:center;padding:40px;display:grid}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin-bottom:8px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.shell{flex:1;min-height:0;display:flex}.shell-sidebar{background:var(--panel);flex-direction:column;min-height:0;display:flex}.shell-main,.roomlist-panel{flex-direction:column;flex:1;min-height:0;display:flex}.empty-pane{color:var(--muted);background:var(--chat-bg);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.empty-pane p{font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);margin:10px 0 0}.empty-pane span{font-size:var(--mg-fs-note)}.empty-pane svg{opacity:.9}@media (width<=899px){.shell-sidebar,.shell-main{width:100%}.at-root .shell-main,.at-content .shell-sidebar,.empty-pane{display:none}}@media (width>=700px) and (width<=899px){.app-frame{border-left:1px solid var(--border);border-right:1px solid var(--border);width:100%;max-width:640px;margin:0 auto}}@media (width>=900px){.shell-sidebar{border-right:1px solid var(--border);flex:0 0 260px;width:260px}.shell-main{flex:1;min-width:0}.shell-main .app-frame{border-left:none;border-right:none;width:100%;max-width:none;margin:0}.mobile-only{display:none!important}.shell-sidebar .brandmark .mod{display:none}}.room-frame{flex:1;min-width:0;min-height:0;display:flex;position:relative}.room-frame>.chat-screen{border:none;flex:auto;width:auto;min-width:0;max-width:none;margin:0}.apphead.room-head{height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0;border-bottom:1px solid var(--mg-border);gap:10px}.room-head:after{display:none}.room-title{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:baseline;gap:8px;padding:0;display:flex}.room-title:disabled{cursor:default}.room-title .name{font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-title .sub{font-size:var(--mg-fs-note);color:var(--muted);flex:none}.room-head-actions{flex:none;align-items:center;gap:8px;display:flex}@media (width<=480px){.apphead.room-head{gap:8px;padding-left:12px;padding-right:12px}.room-head-actions{gap:6px}}.room-btn{border:1px solid var(--mg-border);background:var(--mg-panel);min-width:32px;height:32px;color:var(--mg-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.room-btn[aria-pressed=true]{background:var(--mg-brand-bg);border-color:var(--mg-brand);color:var(--mg-brand-dark)}.room-todo-btn{border:1px solid color-mix(in srgb, var(--st-ng-fg) 35%, white);background:var(--mg-panel);height:32px;color:var(--st-ng-fg);font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);cursor:pointer;white-space:nowrap;border-radius:8px;padding:0 12px}.side-pane{background:var(--mg-panel);border-left:1px solid var(--mg-border);flex-direction:column;flex:0 0 360px;width:360px;min-height:0;display:flex}.side-head{border-bottom:1px solid var(--mg-border);background:var(--mg-panel);flex:none;align-items:center;gap:8px;height:52px;padding:0 12px 0 16px;display:flex}.side-head .title{min-width:0;font-size:var(--mg-fs-body);font-weight:var(--mg-fw-bold);color:var(--mg-ink);flex:1}.files-pane,.line-pane{flex-direction:column;flex:1;min-height:0;display:flex}.side-error{padding:12px}.side-pane .line-window{height:auto;min-height:0;box-shadow:none;border:none;border-radius:0;flex:1}.side-pane .line-head{background:var(--mg-panel);color:var(--mg-ink);border-bottom:1px solid var(--mg-border);height:52px;padding:0 12px 0 16px}.side-pane .line-head-avatar{display:none}.side-pane .line-head-name{font-size:var(--mg-fs-body)}.side-pane .line-partner-toggle,.side-pane .line-head-badge{background:var(--line-green-bg);color:var(--line-green-ink)}.line-head-close{color:var(--muted);font-size:var(--mg-fs-body);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px}.side-pane .line-composer{padding:12px 12px 14px}.side-pane .line-composer-row{flex-wrap:wrap}.side-pane .line-composer-row textarea{border-radius:8px;flex:100%;order:1;min-height:64px}.side-pane .line-composer-row .iconbtn{order:2}.side-pane .line-send{width:auto;height:36px;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);border-radius:8px;order:3;margin-left:auto;padding:0 16px}@media (width<=767px){.side-pane{z-index:30;border-left:none;flex:none;width:auto;position:absolute;inset:0}}.room-frame .send-warning{background:var(--st-ng-bg);color:var(--st-ng-fg)}.msg-undelivered{font-size:var(--mg-fs-note);color:var(--muted);text-align:right;margin:3px 0 0}.count-pill{min-width:20px;height:18px;line-height:18px;font-size:var(--mg-fs-note);font-weight:var(--mg-fw-bold);text-align:center;font-variant-numeric:tabular-nums;background:var(--st-hold-bg);color:var(--st-hold-fg);border-radius:9px;padding:0 6px}.card h2.unreachable-head{align-items:center;gap:8px;display:flex}.unreachable-row{height:40px;font-size:var(--mg-fs-note);color:var(--text);border-top:1px solid var(--border);align-items:center;gap:10px;display:flex}.unreachable-head+.unreachable-row{border-top:0}.inquiry-project{gap:10px;padding:2px 14px 10px 54px;display:grid}.inquiry-owner,.inquiry-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inquiry-project>.inquiry-existing,.inquiry-search .inquiry-existing{border:1px solid var(--border);border-radius:8px;padding:10px}.inquiry-existing small{color:var(--muted);display:block}.inquiry-search{gap:10px;display:grid}.inquiry-search label{gap:5px;display:grid}.inquiry-search input{box-sizing:border-box;width:100%;font:inherit;padding:8px}.inquiry-existing{flex-wrap:wrap}.inquiry-project button,.hidden-topics button{cursor:pointer}.inquiry-error{color:#c03434;font-size:var(--mg-fs-note)}.inquiry-backdrop{z-index:210;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.inquiry-sheet{background:var(--bg,#fff);color:var(--text,#222);box-sizing:border-box;border-radius:16px 16px 0 0;gap:12px;width:min(640px,100%);max-height:90dvh;padding:20px;display:grid;overflow:auto}.inquiry-sheet header,.inquiry-existing,.hidden-topic-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.inquiry-sheet h2{font-size:var(--mg-fs-head);margin:0}.inquiry-sheet label{gap:5px;display:grid}.inquiry-sheet input,.inquiry-sheet textarea,.inquiry-sheet select{box-sizing:border-box;width:100%;font:inherit;padding:8px}.inquiry-candidate{border:1px solid #8885;border-radius:8px;gap:8px;padding:12px;display:grid}.hidden-topics{max-height:40dvh;padding:12px;overflow:auto}.hidden-topic-row{border-bottom:1px solid #8884;padding:8px}
