:root{color-scheme:light;--bg: #f3f5f4;--paper: #ffffff;--rail: #1c2b33;--rail-text: #f3f6f5;--rail-muted: #c5d0d4;--rail-selected: #2a3e49;--ink: #172126;--muted: #3e4c52;--line: #d5dee1;--accent: #0f5f73;--accent-hover: #0c4d5e;--accent-disabled: #3e6270;--accent-text: #f4fbfc;--danger: #8e2f2f;--danger-bg: #f8eeee;--mark-fill: var(--bg);--shadow: 0 12px 28px rgb(23 33 38 / 10%);font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}::selection{background:#d3e7ee;color:#102126}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{position:absolute;left:8px;top:-40px;background:var(--paper);color:var(--ink);padding:8px 12px;z-index:2}.skip:focus{top:8px}.app{height:100dvh;display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.rail{--mark-fill: var(--rail);background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;gap:24px;padding:20px 16px}.rail :focus-visible{outline-color:var(--rail-text)}.brand{display:flex;gap:12px;align-items:center}.brand-name,.brand-product{margin:0}.brand-name{font-weight:700;letter-spacing:-.02em;font-size:1.125rem}.brand-product{color:var(--rail-muted);font-size:.875rem}.nav-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border-radius:6px;color:inherit;text-decoration:none;font-weight:600}.nav-item[aria-current=page],.nav-item:hover{background:var(--rail-selected)}.rail-user{margin-top:auto;display:flex;flex-direction:column;gap:12px}.who strong,.who span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who span,.who{color:var(--rail-muted)}.who strong{color:var(--rail-text)}.workspace{min-width:0;min-height:0;display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.workspace.single{grid-template-columns:1fr}.roster,.thread{min-width:0;min-height:0}.roster{background:var(--paper);border-right:1px solid var(--line);overflow-y:auto}.thread{background:var(--bg);display:flex;flex-direction:column}.roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 8px}.roster h1,.thread-empty h2{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.roster-empty{margin:0;padding:8px 20px 20px;color:var(--muted)}.profile{margin:8px 20px 24px;padding-top:16px;border-top:1px solid var(--line)}.profile h2{margin:0 0 12px;font-size:1rem}.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-weight:700;margin-bottom:12px}.profile-note{margin:0 0 12px;color:var(--muted)}.profile .form-error{margin:0 0 12px}.panel{background:var(--paper);min-height:100%;padding:24px}.panel h1{margin:0 0 8px;font-size:1.5rem;letter-spacing:-.02em}.invite-form{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;gap:12px;align-items:end;margin-bottom:8px}.invite-form .field{margin-bottom:0}.invite-link{margin:0 0 16px;overflow-wrap:anywhere}.people{list-style:none;margin:16px 0 0;padding:0}.person{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.person strong,.person span{display:block}.person span,.person-actions span{color:var(--muted)}.person-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.thread-empty{padding:48px 32px;max-width:65ch}.thread-empty p{margin:8px 0 0;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;object-fit:cover;background:var(--line);color:var(--ink);font-size:.875rem;font-weight:600}.chat-list,.people-list,.messages{list-style:none;margin:0;padding:0}.chat-row{display:flex;align-items:center;gap:12px;padding:10px 20px;color:inherit;text-decoration:none}.chat-row:hover{background:var(--bg)}.chat-row[aria-current=page]{background:#e4eef1}.chat-row-text{flex:1;min-width:0}.chat-row-top,.chat-row-bottom{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.chat-row-top strong,.chat-row-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row-top time{flex:none;color:var(--muted);font-size:.8125rem}.chat-row-preview{color:var(--muted);font-size:.9375rem}.badge{flex:none;min-width:22px;padding:0 6px;border-radius:11px;background:var(--accent);color:var(--accent-text);font-size:.8125rem;font-weight:600;text-align:center}.thread-head{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--paper);border-bottom:1px solid var(--line)}.thread-head h2{margin:0;min-width:0;font-size:1.0625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-back{display:none;min-width:44px;min-height:44px;place-items:center;color:inherit;text-decoration:none;font-size:1.25rem}.thread-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 20px}.thread-note{margin:0;color:var(--muted);text-align:center}.thread-blocked{margin:0;padding:16px 20px;background:var(--paper);border-top:1px solid var(--line);color:var(--muted)}.load-older,.link-button{appearance:none;border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}.load-older{display:block;min-height:44px;margin:0 auto 8px}.day-separator{margin:12px 0;color:var(--muted);font-size:.8125rem;text-align:center}.bubble-row{display:flex;margin-bottom:6px}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:min(72%,62ch);min-width:0;padding:8px 12px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}.bubble-row.mine .bubble{background:#dcebef;border-color:#c2dae1}.bubble-sender{margin:0 0 2px;font-size:.8125rem;font-weight:600;color:var(--accent)}.bubble-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.bubble-meta{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:2px 0 0;color:var(--muted);font-size:.75rem}.bubble-body.deleted{color:var(--muted);font-style:italic}.bubble-actions{display:inline-flex;gap:10px;margin-right:auto;opacity:0}.bubble:hover .bubble-actions,.bubble:focus-within .bubble-actions{opacity:1}@media(hover:none){.bubble-actions{opacity:1}}.bubble-edit textarea{width:min(52ch,100%);min-height:72px;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;resize:vertical}.bubble-edit-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px;font-size:.875rem}.bubble-confirm{margin-top:8px;padding:8px 10px;border-radius:6px;background:var(--danger-bg);font-size:.875rem}.bubble-confirm p{margin:0}.danger-link{color:var(--danger)}.bubble-failed{color:var(--danger);font-weight:600}.ticks{flex:none;color:var(--muted)}.ticks.seen{color:var(--accent)}.live-banner{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);margin:0;padding:8px 14px;border-radius:6px;background:var(--rail);color:var(--rail-text);box-shadow:var(--shadow);font-size:.875rem}.live-banner .link-button{color:inherit}.composer{display:flex;align-items:flex-end;gap:12px;padding:12px 20px;background:var(--paper);border-top:1px solid var(--line)}.composer textarea{flex:1;min-width:0;min-height:44px;max-height:160px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;resize:vertical;caret-color:var(--accent)}.dialog{width:min(calc(100vw - 32px),420px);padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.dialog::backdrop{background:#17212666}.dialog h2{margin:0 0 16px;font-size:1.25rem;letter-spacing:-.02em}.dialog-note{margin:0;color:var(--muted)}.people-list{max-height:320px;overflow-y:auto}.person-line{min-height:52px;display:flex;align-items:center;gap:12px;padding:6px 0}.person-name{flex:1;min-width:0;overflow-wrap:anywhere}.person-name small{display:block;color:var(--muted)}.roster-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.thread-action{margin-left:auto;flex:none}.inline-form{display:flex;align-items:flex-end;gap:12px;margin-bottom:8px}.inline-form .field{flex:1;min-width:0;margin-bottom:0}.inline-form .button{min-height:44px}.dialog h3{margin:16px 0 4px;font-size:1rem}.dialog fieldset{margin:12px 0;padding:0;border:0}.dialog legend{padding:0;font-weight:600}.dialog fieldset label{display:flex;align-items:center;gap:8px;min-height:36px}.add-people{margin-top:8px}.confirm{margin-top:16px;padding:12px;border-radius:6px;background:var(--danger-bg)}.confirm p{margin:0}.dialog-actions.spread{justify-content:space-between;flex-wrap:wrap}.dialog-group{display:flex;flex-wrap:wrap;gap:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.gate{--mark-fill: var(--bg);min-height:100%;display:grid;place-items:center;padding:32px 16px}.gate-panel{width:min(100%,400px)}.gate-panel h1{margin:12px 0 4px;font-size:1.75rem;letter-spacing:-.03em}.lede{margin:0 0 24px;color:var(--muted)}.gate-links{margin:16px 0 0}.text-link{color:var(--accent);font-weight:600}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field span{font-weight:600}.field input{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;caret-color:var(--accent)}.field input[type=file]{padding:8px 0;border:0;background:transparent}.field select{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit}.button{appearance:none;border:0;min-height:44px;padding:0 16px;border-radius:6px;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer}.button:hover{background:var(--accent-hover)}.button:disabled{background:var(--accent-disabled);cursor:not-allowed}.button.block{width:100%}.button.ghost{background:transparent;color:var(--rail-text);border:1px solid var(--rail-muted)}.button.ghost:hover{background:var(--rail-selected)}.button.small{min-height:36px;padding:0 12px;font-size:.875rem}.button.quiet{background:transparent;color:var(--ink);border:1px solid var(--line)}.button.quiet:hover{background:var(--bg)}.button.danger{background:var(--danger);color:#fff}.button.danger:hover{background:#742626}.button.danger-text{color:var(--danger)}.button.danger{background:var(--danger)}.button.danger:hover{background:#732626}.form-error{margin:0 0 16px;padding:10px 12px;border-radius:6px;background:var(--danger-bg);color:var(--danger)}.roster .form-error{margin:8px 20px}@media(max-width:960px){.thread{display:none}.thread.is-open{display:flex}.workspace{grid-template-columns:1fr}.workspace:has(.thread.is-open) .roster{display:none}.thread-back{display:inline-grid}.bubble{max-width:85%}}@media(max-width:720px){.invite-form{grid-template-columns:1fr}.app{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.rail{flex-direction:row;align-items:center;gap:12px;padding:10px 12px}.rail nav{display:flex;flex-direction:row;gap:4px}.rail-user{margin-top:0;margin-left:auto;flex-direction:row;align-items:center}.who span{display:none}}@media(prefers-reduced-motion:reduce){.button{transition:none}}
