:root{--brand: #2f6f4e;--brand-600: #27603f;--brand-100: #e8f1ec;--ink: #16181a;--ink-2: #414447;--muted: #767b7d;--line: #e9ebe9;--line-2: #f2f4f2;--surface: #ffffff;--canvas: #f6f7f6;--warn: #9a5f10;--warn-bg: #fdf3e3;--danger: #c93b3f;--danger-bg: #fdeced;--info-bg: #eef0fe;--info: #3f4bb8;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--shadow-sm: 0 1px 2px rgba(16, 24, 20, .05);--shadow-md: 0 6px 18px -6px rgba(16, 24, 20, .16), 0 2px 6px rgba(16, 24, 20, .05);--shadow-lg: 0 18px 44px -14px rgba(16, 24, 20, .28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;background:var(--canvas);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:var(--brand)}svg{flex-shrink:0}.app{display:grid;grid-template-columns:330px minmax(0,1fr);height:100vh;overflow:hidden}.main{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-width:0;min-height:0;overflow:hidden}@media (max-width: 1180px){.main{grid-template-columns:minmax(0,1fr)}.aside{display:none}}.sidebar{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;min-height:0}.sidebar-top{padding:14px 16px 10px;display:flex;align-items:center;gap:10px}.brand{font-size:15px;font-weight:650;letter-spacing:-.01em}.spacer{flex:1}.icon-link{width:32px;height:32px;border-radius:var(--r-sm);border:none;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .14s,color .14s}.icon-link:hover{background:var(--line-2);color:var(--ink)}.tabs{display:flex;gap:2px;padding:0 10px 10px}.tabs button{flex:1;padding:7px 6px;border-radius:var(--r-sm);border:none;background:none;color:var(--muted);font-size:12.5px;font-weight:550;transition:background .14s,color .14s;display:flex;align-items:center;justify-content:center;gap:5px}.tabs button:hover{background:var(--line-2);color:var(--ink-2)}.tabs button[data-active=true]{background:var(--brand-100);color:var(--brand-600)}.tabs .n{font-size:11px;font-weight:700;opacity:.7}.list{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px}.list::-webkit-scrollbar{width:10px}.list::-webkit-scrollbar-thumb{background:#0000001f;border-radius:5px;border:3px solid transparent;background-clip:content-box}.row{width:100%;text-align:left;background:none;border:none;border-radius:var(--r-md);padding:11px 12px;display:flex;gap:10px;align-items:flex-start;transition:background .12s}.row:hover{background:var(--line-2)}.row[data-selected=true]{background:var(--brand-100)}.row .body{min-width:0;flex:1}.row .line{display:flex;align-items:baseline;gap:6px}.row .who{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .when{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.row .preview{font-size:12.5px;color:var(--muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row .tags{display:flex;gap:5px;margin-top:6px;align-items:center;flex-wrap:wrap}.wait{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--line-2);color:var(--muted)}.wait[data-level=warm]{background:var(--warn-bg);color:var(--warn)}.wait[data-level=hot]{background:var(--danger-bg);color:var(--danger)}.chip-s{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--line-2);color:var(--muted)}.chip-s.brand{background:var(--brand-100);color:var(--brand-600)}.chip-s.warn{background:var(--warn-bg);color:var(--warn)}.chip-s.info{background:var(--info-bg);color:var(--info)}.dot-unread{width:8px;height:8px;border-radius:50%;background:var(--brand);margin-top:6px;flex-shrink:0}.av{width:34px;height:34px;border-radius:50%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:650;color:#fff;letter-spacing:-.02em;background:linear-gradient(145deg,#57a37b,#2f6f4e)}.av.sm{width:26px;height:26px;font-size:10.5px}.av.bot{background:linear-gradient(145deg,#6b7cf6,#4c5fd7)}.av.anon{background:linear-gradient(145deg,#b6bcb8,#8a918c)}.head{background:var(--surface);border-bottom:1px solid var(--line);padding:12px 18px;display:flex;align-items:center;gap:12px;min-height:62px}.head .title{font-size:15px;font-weight:650;letter-spacing:-.01em}.head .sub{font-size:12px;color:var(--muted);margin-top:1px}.actions{margin-left:auto;display:flex;gap:6px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);padding:7px 12px;font-size:13px;font-weight:550;transition:border-color .14s,background .14s,color .14s,box-shadow .14s}.btn:hover{border-color:#cfd5d1;background:#fbfcfb;color:var(--ink)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #184a3240}.btn.primary:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn.quiet{border-color:transparent;background:none;color:var(--muted)}.btn.quiet:hover{background:var(--line-2);color:var(--ink)}.btn.danger:hover{border-color:#edc9ca;background:var(--danger-bg);color:var(--danger)}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:208px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;animation:drop .13s ease-out}@keyframes drop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu button{width:100%;text-align:left;border:none;background:none;border-radius:var(--r-sm);padding:8px 10px;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:8px}.menu button:hover{background:var(--line-2);color:var(--ink)}.menu .sep{height:1px;background:var(--line);margin:4px 0}.menu .label{font-size:11px;color:var(--muted);padding:6px 10px 3px;text-transform:uppercase;letter-spacing:.04em}.thread{flex:1;min-height:0;overflow-y:auto;padding:20px 22px 8px;background:var(--canvas)}.day{text-align:center;margin:4px auto 16px}.day span{background:#16181a0f;color:var(--muted);font-size:11px;padding:3px 11px;border-radius:999px}.grp{display:flex;gap:9px;margin-bottom:14px;align-items:flex-end}.grp.mine{flex-direction:row-reverse}.grp .stack{display:flex;flex-direction:column;gap:3px;max-width:70%;min-width:0}.grp.mine .stack{align-items:flex-end}.grp .name{font-size:11.5px;font-weight:600;color:var(--muted);margin:0 0 3px 12px}.grp .at{font-size:11px;color:var(--muted);margin-top:3px}.grp.mine .at{text-align:right}.bub{padding:10px 14px;font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.theirs .bub{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 5px;box-shadow:var(--shadow-sm)}.mine .bub{background:linear-gradient(150deg,#37805a,var(--brand));color:#fff;border-radius:16px 16px 5px}.bot .bub{background:var(--info-bg);border-color:#dfe3fb;color:#23273f}.bub [class^=rich-],.txt [class^=rich-]{margin:0}.bub [class^=rich-]+[class^=rich-],.txt [class^=rich-]+[class^=rich-]{margin-top:.5em}.bub .rich-h,.txt .rich-h{font-weight:650}.bub .rich-list,.txt .rich-list{padding-left:1.25em}.bub .rich-list li,.txt .rich-list li{margin:.15em 0}.bub code,.txt code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:#0000000f;border-radius:4px;padding:.05em .3em}.mine .bub code{background:#ffffff2e}.bub a,.txt a{color:inherit;text-decoration:underline;text-underline-offset:2px}.note{max-width:70%;margin:0 0 14px auto;background:var(--warn-bg);border:1px solid #f0ddbe;border-left:3px solid #d79a3e;border-radius:var(--r-md);padding:10px 13px}.note .tag{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:650;color:var(--warn);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.note .txt{font-size:13.5px;color:#5c4517;white-space:pre-wrap}.event-line{display:flex;align-items:center;gap:8px;margin:12px 0;color:var(--muted);font-size:11.5px}.event-line:before,.event-line:after{content:"";flex:1;height:1px;background:var(--line)}.shot{display:block;padding:0;background:none;cursor:zoom-in;margin-bottom:5px;border-radius:14px;overflow:hidden;border:1px solid var(--line);max-width:260px;line-height:0}.shot img{width:100%;display:block;max-height:300px;object-fit:cover}.mine .shot{border-color:#ffffff59}.shot:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;margin:24px;border-radius:var(--r-lg);overflow:hidden;background:#121413;box-shadow:0 0 0 100vmax #0e100f8c,var(--shadow-lg);animation:lb-in .16s ease-out}.lb-bar{position:relative;z-index:1;background:#121413;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 18px;color:#e9ecea;font-size:13px}.lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.lb-count{color:#9aa19d}.lb-tools{display:flex;align-items:center;gap:4px;flex-shrink:0}.lb-tools button,.lb-tools a{min-width:34px;height:34px;padding:0 8px;border:0;border-radius:var(--r-sm);background:#ffffff14;color:#fff;font-size:16px;line-height:34px;text-align:center;text-decoration:none}.lb-tools .lb-pct{font-size:12px;min-width:56px;font-variant-numeric:tabular-nums}.lb-tools button:hover:not(:disabled),.lb-tools a:hover{background:#ffffff2e}.lb-tools button:disabled{opacity:.35;cursor:default}.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:zoom-in}.lb-stage.zoomed{cursor:grab}.lb-stage.zoomed:active{cursor:grabbing}.lb-stage img{max-width:calc(100% - 96px);max-height:calc(100% - 24px);object-fit:contain;-webkit-user-select:none;user-select:none;transform-origin:center;will-change:transform}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:#ffffff1f;color:#fff;font-size:26px;line-height:40px}.lb-nav:hover{background:#ffffff3d}.lb-nav.prev{left:14px}.lb-nav.next{right:14px}.doc{display:inline-flex;align-items:center;gap:7px;margin-bottom:5px;padding:9px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:13px}.composer{background:var(--surface);border-top:1px solid var(--line);padding:10px 18px 14px}.composer .modes{display:flex;gap:4px;margin-bottom:8px}.composer .modes button{border:none;background:none;border-radius:var(--r-sm);padding:5px 11px;font-size:12.5px;font-weight:550;color:var(--muted);transition:background .14s,color .14s}.composer .modes button[data-active=true]{background:var(--brand-100);color:var(--brand-600)}.composer .modes button[data-active=true][data-note=true]{background:var(--warn-bg);color:var(--warn)}.composer .box{border:1px solid var(--line);border-radius:var(--r-md);padding:4px;transition:border-color .14s,box-shadow .14s}.composer .box:focus-within{border-color:#bcd3c5;box-shadow:0 0 0 3px var(--brand-100)}.composer[data-note=true] .box{background:#fffdf7;border-color:#ecd9b4}.composer[data-note=true] .box:focus-within{border-color:#d79a3e;box-shadow:0 0 0 3px #fbedd6}.composer textarea{width:100%;min-height:74px;max-height:240px;resize:none;border:none;outline:none;background:none;padding:9px 11px;line-height:1.5}.composer .bar{display:flex;align-items:center;gap:8px;padding:4px 6px 2px}.composer .keys{font-size:11.5px;color:var(--muted)}.composer .bar .btn{margin-left:auto}kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--line-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 5px}.aside{background:var(--surface);border-left:1px solid var(--line);min-height:0;overflow-y:auto;padding:16px}.aside h3{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.aside section{margin-bottom:22px}.who-card{display:flex;gap:10px;align-items:center;margin-bottom:12px}.who-card .n{font-size:14px;font-weight:600}.who-card .m{font-size:12px;color:var(--muted)}.kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;color:var(--ink-2)}.timeline{font-size:12px;color:var(--muted)}.timeline div{padding:6px 0 6px 14px;position:relative;border-left:1px solid var(--line);margin-left:3px}.timeline div:before{content:"";position:absolute;left:-4px;top:12px;width:7px;height:7px;border-radius:50%;background:#cdd3cf}.timeline strong{color:var(--ink-2);font-weight:600}.empty{margin:auto;text-align:center;color:var(--muted);padding:60px 30px;max-width:320px}.empty .big{font-size:34px;margin-bottom:10px}.empty .t{font-size:15px;font-weight:600;color:var(--ink-2);margin-bottom:4px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:#1c201e;color:#fff;padding:11px 18px;border-radius:999px;font-size:13px;box-shadow:var(--shadow-lg);z-index:90;animation:rise .18s ease-out;display:flex;align-items:center;gap:9px}.toast[data-kind=error]{background:#7a2326}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes lb-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-md)}.login .mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(150deg,#3c8a63,var(--brand));display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:16px}.login h1{margin:0 0 4px;font-size:20px;letter-spacing:-.02em}.login p{color:var(--muted);margin:0 0 20px;font-size:13.5px}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:550}.input{width:100%;padding:10px 13px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);outline:none;transition:border-color .14s,box-shadow .14s}.input:focus{border-color:#bcd3c5;box-shadow:0 0 0 3px var(--brand-100)}.input:disabled{background:var(--canvas);color:var(--muted)}.input.code{font-size:22px;letter-spacing:.3em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.login .btn{width:100%;justify-content:center;padding:11px}.hint{margin-top:14px;font-size:12.5px;color:var(--muted);line-height:1.55}.error{background:var(--danger-bg);color:var(--danger);border-radius:var(--r-sm);padding:9px 12px;font-size:13px;margin-bottom:12px}.page{max-width:640px;margin:0 auto;padding:28px 24px 60px;overflow-y:auto;height:100vh}.page h2{margin:18px 0 6px;font-size:19px;letter-spacing:-.02em}.page .lead{color:var(--muted);margin:0 0 22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm);margin-bottom:16px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 8px 8px;font-weight:650}.table td{padding:10px 8px;border-top:1px solid var(--line-2);font-size:13.5px;vertical-align:middle}.select{padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface)}.chip-s.cat{border-style:solid;font-weight:600}.chip-s.cat[data-ai=true]{border-style:dashed}.chip-s.cat[data-cat=bug]{background:#fdecea;border-color:#f5c2bb;color:#9b2c1c}.chip-s.cat[data-cat=support]{background:#eaf1fd;border-color:#c2d4f5;color:#1c4a9b}.chip-s.cat[data-cat=feature]{background:#f3eafd;border-color:#d8c2f5;color:#5a1c9b}.chip-s.cat[data-cat=sales]{background:#eafdf0;border-color:#c2f5d4;color:#1c7a45}.chip-s.cat[data-cat=other]{background:#f2f2ef;border-color:#ddddd8;color:#6b6b66}.chip-s.warn{background:#fbf1e2;border-color:#f0dcb4;color:#8a5a00;font-weight:600}.avail{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--line, #e6e6e1);background:#fff;color:#6b6b66;cursor:pointer}.avail[data-on=true]{color:#1c7a45;border-color:#c2f5d4;background:#eafdf0}.avail-dot{width:7px;height:7px;border-radius:50%;background:#c4c4bf}.avail[data-on=true] .avail-dot{background:#1a9655}
