:root{--radius: 10px;--border: 1px solid color-mix(in oklab, var(--text) 14%, transparent);font-size:16px}:root[data-theme=dark]{--bg: #282828;--bg-raised: #3c3836;--bg-inset: #1d2021;--text: #ebdbb2;--text-dim: #a89984;--text-dim-raised: #bdae93;--accent: #fabd2f;--accent-text: #fabd2f;--on-accent: #282828;--danger: #fb4934;color-scheme:dark}:root[data-theme=light]{--bg: #fbf1c7;--bg-raised: #f9f5d7;--bg-inset: #f2e5bc;--text: #3c3836;--text-dim: #665c54;--text-dim-raised: #665c54;--accent: #fabd2f;--accent-text: #af3a03;--on-accent: #3c3836;--danger: #cc241d;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;line-height:1.45;transition:background-color .16s ease-out,color .16s ease-out}button,input,textarea,select{font:inherit;color:inherit}button{background:var(--accent);color:var(--on-accent);font-weight:600;border:0;border-radius:8px;padding:.5em 1.1em;cursor:pointer;transition:scale .12s cubic-bezier(.2,0,0,1),opacity .12s}button:active{scale:.96}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;color:var(--text-dim);font-weight:500}button.ghost:hover{color:var(--text)}button.danger,.ghost.danger{color:var(--danger);font-weight:600}button.primary:disabled{color:var(--on-accent)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,textarea,select{background:var(--bg-inset);border:var(--border);border-radius:8px;padding:.5em .7em}input::placeholder,textarea::placeholder{color:var(--text-dim)}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}textarea{resize:vertical}a{color:var(--accent-text)}.landing{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.landing-card{width:min(26rem,100%);display:grid;gap:1.2rem}.landing h1{margin:0;font-size:1.44rem;font-weight:700;letter-spacing:-.01em}.landing .tagline{margin:.2rem 0 0;color:var(--text-dim);font-size:.92rem}.landing .pitch{margin:0;font-size:.92rem;color:var(--text-dim)}.landing .pitch strong{color:var(--text);font-weight:600}.landing .invite-banner{background:var(--bg-raised);border:var(--border);border-radius:var(--radius);padding:.7rem .9rem;font-size:.92rem}.login form{display:grid;gap:.7rem}.login .hint{color:var(--text-dim);font-size:.85rem;margin:-.35rem 0 0}.error{color:var(--danger);margin:0;font-size:.92rem}.spinner{display:inline-block;width:1em;height:1em;border:2px solid var(--on-accent);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.15em}@keyframes spin{to{rotate:360deg}}.skeleton{border-radius:8px;background:linear-gradient(100deg,var(--bg-inset) 40%,var(--bg-raised) 50%,var(--bg-inset) 60%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.skel-row{height:2.2rem;margin-bottom:.5rem}.skel-msg{height:3.4rem;margin-bottom:.9rem}.shell{display:flex;min-height:100vh}.topbar{display:none;align-items:center;gap:.5rem;padding:.5rem .8rem;background:var(--bg-inset);border-bottom:var(--border);position:sticky;top:0;z-index:20}.topbar .space-name{font-weight:600;margin-right:auto}.sidebar{width:240px;flex-shrink:0;background:var(--bg-inset);border-right:var(--border);padding:.9rem .8rem;display:flex;flex-direction:column;gap:.9rem}.who{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.handle{color:var(--accent-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who .ghost{padding:.2em .5em;font-size:.92rem}.space-list{display:grid;gap:.25rem;overflow-y:auto}button.space{background:transparent;color:var(--text-dim);font-weight:500;text-align:left;border-radius:8px;padding:.45em .6em;display:flex;flex-direction:row;align-items:center;gap:.3em}button.space .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.space:hover{color:var(--text);background:var(--bg-raised)}button.space.active{background:var(--bg-raised);color:var(--text)}button.space .star{color:var(--accent-text);flex-shrink:0}.sidebar .add-space{width:100%}.sidebar-footer{margin-top:auto;display:grid;gap:.2rem}dialog{background:var(--bg-raised);color:var(--text);border:var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;width:min(24rem,calc(100vw - 2rem))}dialog::backdrop{background:#0009}dialog[open]{animation:dialog-in .16s ease-out}@keyframes dialog-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}dialog h3{margin:0 0 .8rem;font-size:1.05rem}dialog form,dialog .dialog-body{display:grid;gap:.7rem}dialog .row{display:flex;gap:.5rem;justify-content:flex-end}dialog .muted{color:var(--text-dim);font-size:.85rem;margin:0}dialog hr{border:0;border-top:var(--border);margin:.3rem 0;width:100%}.invite-link{display:flex;gap:.5rem}.invite-link input{flex:1;font-size:.85rem}.space{flex:1;display:flex;flex-direction:column;min-width:0}.space-header{display:flex;align-items:center;gap:.6rem;padding:.8rem clamp(1rem,4vw,3rem) .4rem;max-width:52rem;width:100%;margin:0 auto}.space-header h1{margin:0 auto 0 0;font-size:1.2rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-header .ghost{padding:.3em .6em;font-size:.85rem}.thread-bar{display:flex;gap:.4rem;padding:.4rem clamp(1rem,4vw,3rem) .7rem;max-width:52rem;width:100%;margin:0 auto;overflow-x:auto}.chip{background:transparent;color:var(--text-dim);border:var(--border);border-radius:999px;padding:.25em .8em;font-size:.85rem;font-weight:500;white-space:nowrap}.chip:hover{color:var(--text)}.chip.active{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:600}.stream{flex:1;padding:.3rem clamp(1rem,4vw,3rem) 1rem;max-width:52rem;width:100%;margin:0 auto;display:grid;gap:.9rem;align-content:start}.msg header{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.msg .thread-tag{background:transparent;border:0;padding:0;color:var(--accent-text);font-size:.78rem;font-weight:600;cursor:pointer}.msg .thread-tag:hover{text-decoration:underline}.msg strong{font-weight:600;font-size:.92rem}.msg time{color:var(--text-dim);font-size:.78rem}.msg p{margin:.15em 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.msg-actions{display:inline-flex;gap:.1rem;margin-left:auto;opacity:0;transition:opacity .12s}.msg:hover .msg-actions,.msg-actions:focus-within{opacity:1}.msg-actions .ghost{font-size:.78rem;padding:.1rem .45rem}@media(hover:none){.msg-actions{opacity:1}}.editor{display:grid;gap:.4rem;margin-top:.3rem}.editor textarea{width:100%}.editor .row{display:flex;gap:.4rem;justify-content:flex-end}.composer{position:sticky;bottom:0;background:var(--bg);border-top:var(--border);padding:.7rem clamp(1rem,4vw,3rem) .8rem}.composer-inner{max-width:52rem;margin:0 auto;display:grid;gap:.5rem}.composer .controls{display:flex;gap:.5rem;align-items:center}.composer select{max-width:16rem}.composer textarea{width:100%}.composer .send{justify-self:end}.members ul{list-style:none;margin:0;padding:0}.members li{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;gap:.5rem}.members .member-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{flex:1;display:grid;place-items:center;padding:2rem}.empty .empty-card{max-width:24rem;text-align:center;display:grid;gap:.6rem;justify-items:center}.empty p{color:var(--text-dim);margin:0}.account-menu button{width:100%;text-align:left}.theme-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}@media(max-width:700px){.shell{flex-direction:column}.topbar{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(280px,85vw);transform:translate(-100%);transition:transform .18s ease-out;border-right:var(--border)}.sidebar.open{transform:translate(0)}.sidebar-scrim{position:fixed;inset:0;z-index:25;background:#00000080;border:0;border-radius:0;padding:0}.space-header h1{display:none}.msg-actions{opacity:1}}@media(min-width:701px){.sidebar{position:sticky;top:0;height:100vh}.sidebar-scrim{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
