:root{--sidebar-width:72px;--panel-width:260px;--header-height:48px;--content-max:1200px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:9999px;--z-tooltip:50;--z-overlay:90;--z-sidebar:100;--z-modal:200;--z-toast:300;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", sans-serif;--font-mono:"SF Mono", "Fira Code", "Roboto Mono", monospace;--text-3xs:.5625rem;--text-2xs:.625rem;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--swatch-violet:#6724db;--swatch-ocean:#1282ba;--swatch-ember:#d5550b;--swatch-forest:#218c53;--swatch-rose:#d3226c;--swatch-slate:#3264ae;--bg:#f7f4fa;--bg-raised:#fff;--bg-sunken:#ece8f3;--bg-hover:#e7e2ee;--fg:#211a2e;--fg-2:#66587e;--fg-3:#746986;--border:#d4cddf;--border-2:#e7e4ec;--accent:var(--swatch-violet);--accent-hover:#571eb8;--accent-bg:#f0e9fb;--accent-fg:#fcfcfd;--accent-muted:#8354d4;--accent-border:#b599e6;--success-bg:#eefcf3;--success-fg:#15793a;--success-border:#b3e6c5;--error:#db2424;--error-bg:#fdf2f2;--error-fg:#a71b1b;--error-border:#ebc2c2;--warning-bg:#fef7ec;--warning-fg:#915f08;--warning-border:#f0d6a8;--info-bg:#ecf3fd;--info-fg:#0e4faa;--info-border:#b6cded;--online:#27b95d;--danger:var(--error);--danger-bg:#fceded;--on-error:#fff;--overlay:#00000080;--qr-bg:#fff;--shadow-color:262 30% 10%;--transition:.15s ease;--transition-slow:.3s ease}@media (prefers-color-scheme:dark){:root{--bg:#110e16;--bg-raised:#1b1622;--bg-sunken:#0c0a10;--bg-hover:#272130;--fg:#eae7ee;--fg-2:#968da5;--fg-3:#878093;--border:#362f41;--border-2:#221f29;--accent:#ab89e6;--accent-hover:#c9b3ef;--accent-bg:#1b0c37;--accent-fg:#131018;--accent-muted:#9471d0;--accent-border:#6339ac;--success-bg:#0a1f12;--success-fg:#7cdea0;--success-border:#224f32;--error:#e14747;--error-bg:#1f0a0a;--error-fg:#eb8484;--error-border:#4f2222;--warning-bg:#211808;--warning-fg:#f8c977;--warning-border:#54401c;--info-bg:#0a131f;--info-fg:#7badf4;--info-border:#22344f;--online:#3bce71;--danger-bg:#260d0d;--shadow-color:0 0% 0%}}:root,body{--shadow:0 2px 8px hsl(var(--shadow-color) / .08), 0 1px 3px hsl(var(--shadow-color) / .05);--shadow-lg:0 8px 20px hsl(var(--shadow-color) / .1), 0 3px 8px hsl(var(--shadow-color) / .06);--shadow-xl:0 20px 40px hsl(var(--shadow-color) / .12), 0 8px 16px hsl(var(--shadow-color) / .07);--shadow-drawer:10px 0 30px hsl(var(--shadow-color) / .2)}@media (prefers-color-scheme:dark){:root,body{--shadow:0 2px 8px hsl(var(--shadow-color) / .45), 0 1px 3px hsl(var(--shadow-color) / .35);--shadow-lg:0 8px 20px hsl(var(--shadow-color) / .55), 0 3px 8px hsl(var(--shadow-color) / .45);--shadow-xl:0 20px 40px hsl(var(--shadow-color) / .65), 0 8px 16px hsl(var(--shadow-color) / .55)}}body.palette-ocean{--shadow-color:210 30% 10%;--bg:#f4f7fa;--bg-raised:#fff;--bg-sunken:#e8edf3;--bg-hover:#e2e8ee;--fg:#1a242e;--fg-2:#586b7e;--fg-3:#63707e;--border:#cdd6df;--border-2:#e4e8ec;--accent:var(--swatch-ocean);--accent-hover:#0f6895;--accent-bg:#e8f6fd;--accent-fg:#fcfdfd;--accent-muted:#1d78a5;--accent-border:#5ab5e2}@media (prefers-color-scheme:dark){body.palette-ocean{--shadow-color:0 0% 0%;--bg:#0e1216;--bg-raised:#161c22;--bg-sunken:#0a0d10;--bg-hover:#212930;--fg:#e7ebee;--fg-2:#8d99a5;--fg-3:#7e8791;--border:#2f3841;--border-2:#1f2429;--accent:#55b6e7;--accent-hover:#82c9ed;--accent-bg:#072331;--accent-fg:#101618;--accent-muted:#368eba;--accent-border:#2e799e}}body.palette-ember{--shadow-color:28 30% 10%;--bg:#faf7f4;--bg-raised:#fff;--bg-sunken:#f3ede8;--bg-hover:#eee8e2;--fg:#281e15;--fg-2:#7a6552;--fg-3:#7b6d60;--border:#e0d6cc;--border-2:#ede8e3;--accent:var(--swatch-ember);--accent-hover:#ae4609;--accent-bg:#feefe7;--accent-fg:#fdfcfc;--accent-muted:#b85014;--accent-border:#ed935e}@media (prefers-color-scheme:dark){body.palette-ember{--shadow-color:0 0% 0%;--bg:#15120e;--bg-raised:#211c17;--bg-sunken:#100d0a;--bg-hover:#2f2822;--fg:#eeeae7;--fg-2:#a5988d;--fg-3:#8e847b;--border:#41382f;--border-2:#29231f;--accent:#f38749;--accent-hover:#f6a779;--accent-bg:#2e1405;--accent-fg:#181410;--accent-muted:#cc6b33;--accent-border:#a35629}}body.palette-forest{--shadow-color:148 30% 10%;--bg:#f5faf7;--bg-raised:#fff;--bg-sunken:#e9f2ed;--bg-hover:#e3ede8;--fg:#16271e;--fg-2:#517060;--fg-3:#60766a;--border:#c8dad0;--border-2:#e4ece8;--accent:var(--swatch-forest);--accent-hover:#1a7042;--accent-bg:#eafaf2;--accent-fg:#fcfdfc;--accent-muted:#2a7e51;--accent-border:#53c688}@media (prefers-color-scheme:dark){body.palette-forest{--shadow-color:0 0% 0%;--bg:#0f1512;--bg-raised:#18211c;--bg-sunken:#0a0f0d;--bg-hover:#232f28;--fg:#e8eeea;--fg-2:#8fa398;--fg-3:#7d8c84;--border:#304038;--border-2:#1f2823;--accent:#46ce85;--accent-hover:#6ed8a0;--accent-bg:#0a2416;--accent-fg:#0e1512;--accent-muted:#429a6b;--accent-border:#378159}}body.palette-rose{--shadow-color:335 30% 10%;--bg:#faf4f7;--bg-raised:#fff;--bg-sunken:#f3e8ec;--bg-hover:#eee2e7;--fg:#2e1a22;--fg-2:#7e5868;--fg-3:#836773;--border:#dfcdd5;--border-2:#ece4e7;--accent:var(--swatch-rose);--accent-hover:#af1d5a;--accent-bg:#fcedf4;--accent-fg:#fdfcfc;--accent-muted:#c83270;--accent-border:#e28db0}@media (prefers-color-scheme:dark){body.palette-rose{--shadow-color:0 0% 0%;--bg:#150e11;--bg-raised:#21171b;--bg-sunken:#100a0c;--bg-hover:#2f2228;--fg:#eee7ea;--fg-2:#a38f97;--fg-3:#8e8086;--border:#413037;--border-2:#281f23;--accent:#e576a4;--accent-hover:#eda1c1;--accent-bg:#2a0917;--accent-fg:#181014;--accent-muted:#c4648c;--accent-border:#9b3b63}}body.palette-slate{--shadow-color:216 30% 10%;--bg:#f6f7f9;--bg-raised:#fff;--bg-sunken:#eaedf0;--bg-hover:#e4e7ec;--fg:#1c222c;--fg-2:#586374;--fg-3:#6a717c;--border:#cdd2db;--border-2:#e5e7eb;--accent:var(--swatch-slate);--accent-hover:#29528e;--accent-bg:#ebf1f9;--accent-fg:#fcfcfd;--accent-muted:#436fb1;--accent-border:#7e9ece}@media (prefers-color-scheme:dark){body.palette-slate{--shadow-color:0 0% 0%;--bg:#121417;--bg-raised:#1b1e22;--bg-sunken:#0d0f12;--bg-hover:#262a31;--fg:#e2e5e9;--fg-2:#8b929c;--fg-3:#848990;--border:#31373f;--border-2:#202327;--accent:#739ad3;--accent-hover:#9ab6df;--accent-bg:#0d1726;--accent-fg:#111417;--accent-muted:#6889bb;--accent-border:#3f5e8d}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%}body{-webkit-font-smoothing:antialiased;min-height:100%;line-height:1.5}img,video,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none}#app{flex-direction:column;height:100dvh;display:flex}body{font-family:var(--font-sans);font-size:var(--text-base);background-color:var(--bg);color:var(--fg);transition:background-color var(--transition-slow), color var(--transition-slow)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}a{color:var(--accent);transition:opacity var(--transition)}a:hover{opacity:.8}hr{border:none;border-top:1px solid var(--border);margin:1.5rem 0}code{font-family:var(--font-mono);background:var(--bg-sunken);color:var(--accent);border-radius:var(--r-sm);padding:.1em .35em;font-size:.85em}pre{font-family:var(--font-mono);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:1rem;overflow-x:auto}pre code{color:var(--fg-2);background:0 0;padding:0}small{font-size:var(--text-sm)}.label-uppercase,.circle-card__activity-label,.role-badge,.tag-section-title,.member-section-header h3,.invite-btn,.settings-section h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fg-3);font-weight:700}.app-header__title,.circle-sidebar__header h2,.circle-card__activity-title,.member-name,:where(.thread-item__title-row)>h2,.thread-item__preview-inline,.tag-list-item>.nav-item>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-layout{height:100dvh;display:flex;position:relative;overflow:hidden}body.lock-scroll{overflow:hidden}.sidebar-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-overlay);opacity:0;pointer-events:none;transition:opacity var(--transition);position:fixed;inset:0}.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.app-sidebar{width:var(--sidebar-width);background:var(--bg-sunken);border-right:1px solid var(--border);scrollbar-width:none;z-index:var(--z-sidebar);transition:transform var(--transition);flex-direction:column;flex-shrink:0;align-items:center;gap:.5rem;padding:.75rem 0;display:flex;overflow:hidden auto}.app-sidebar::-webkit-scrollbar{display:none}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-header{height:var(--header-height);background:var(--bg-raised);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:0 1rem;display:flex}.app-header__left{align-items:center;gap:.75rem;min-width:0;display:flex}.app-header__left .btn-icon{margin-left:-.5rem;display:none}.app-header__title{font-weight:700;font-size:var(--text-lg);color:var(--fg-2);align-items:center;gap:.5rem;display:flex}.app-header__logo{width:1.5rem;height:1.5rem;color:var(--accent);flex-shrink:0}.app-header__nav{align-items:center;gap:1.25rem;display:flex}:where(.app-header__nav) .nav-link{font-size:var(--text-sm);color:var(--fg-2);cursor:pointer;transition:color var(--transition);background:0 0;border:none;align-items:center;gap:.375rem;padding:0;display:flex}:where(.app-header__nav) .nav-link:hover{color:var(--accent);opacity:1;text-decoration:none}@media (width<=600px){:where(.app-header__nav) .nav-link span{display:none}}.app-version{font-size:var(--text-xs);color:var(--fg-3);font-family:var(--font-mono);opacity:.8}.app-header__user{font-size:var(--text-sm);color:var(--fg-2);font-weight:500}@media (width<=768px){.app-header__user{display:none}}.nav-icon{flex-shrink:0;width:1.125rem;height:1.125rem}.app-header__logout{color:var(--fg-2)}.app-header__logout:hover{color:var(--error)}.app-content{background:var(--bg);flex:1;overflow-y:auto}.circle-layout{height:100%;display:flex;overflow:hidden}.circle-sidebar{width:var(--panel-width);background:var(--bg-raised);border-right:1px solid var(--border);z-index:var(--z-sidebar);transition:transform var(--transition);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.circle-sidebar__header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.875rem 1rem;display:flex}.circle-sidebar__header h2{font-size:var(--text-base);min-width:0;font-weight:700}.circle-sidebar__body{flex-direction:column;flex:1;gap:1.25rem;padding:.75rem;display:flex;overflow-y:auto}.circle-sidebar__members{flex-direction:column;gap:.25rem;margin-top:.375rem;display:flex}.circle-sidebar__footer{border-top:1px solid var(--border);flex-shrink:0;padding:.75rem 1rem}.circle-sidebar__footer a{font-size:var(--text-sm);color:var(--fg-3);align-items:center;gap:.5rem;display:flex}.circle-sidebar__footer a:hover{color:var(--fg);opacity:1}.circle-content{flex:1;padding:1.25rem;overflow-y:auto}.content-container{max-width:var(--content-max);width:100%}@media (width<=768px){.app-header__left .btn-icon{display:flex}.circle-icon .tooltip{display:none}.app-sidebar{border-right:none;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.circle-sidebar{width:calc(100vw - 48px);max-width:var(--panel-width);transform:translateX(calc(-100% - var(--sidebar-width)));margin-left:var(--sidebar-width);transition:transform var(--transition), box-shadow var(--transition);position:fixed;top:0;bottom:0;left:0}.sidebar-open .app-sidebar{transform:translate(0)}.sidebar-open .circle-sidebar{box-shadow:var(--shadow-drawer);transform:translate(0)}}.field{flex-direction:column;gap:.375rem;display:flex}.field+.field{margin-top:1rem}.field>.btn{align-self:flex-start}.field-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field-row .field+.field{margin-top:0}@media (width<=600px){.field-row{grid-template-columns:1fr}}label{font-size:var(--text-sm);color:var(--fg-2);font-weight:500}.label-meta{justify-content:space-between;align-items:center;display:flex}.label-meta~textarea{min-height:200px}input:where(:not([type=checkbox],[type=radio],[type=submit],[type=button],[type=reset],[type=range],[type=color],[type=file])),textarea,select{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--fg);font-size:var(--text-base);transition:border-color var(--transition);appearance:none;padding:.5rem .75rem;line-height:1.5}:is(input:where(:not([type=checkbox],[type=radio],[type=submit],[type=button],[type=reset],[type=range],[type=color],[type=file])),textarea,select):focus{border-color:var(--accent);outline:none}:is(input:where(:not([type=checkbox],[type=radio],[type=submit],[type=button],[type=reset],[type=range],[type=color],[type=file])),textarea,select)::placeholder{color:var(--fg-3)}textarea{resize:vertical;min-height:80px;line-height:1.6}select{background-image:linear-gradient(45deg, transparent 50%, var(--fg-3) 50%), linear-gradient(135deg, var(--fg-3) 50%, transparent 50%);background-position:right calc(.75rem + 6px) center,right calc(.75rem + 1px) center;background-repeat:no-repeat;background-size:5px 5px;padding-right:2rem}input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.checkbox-row{cursor:pointer;align-items:center;gap:.5rem;display:flex}.input-row{gap:.5rem;display:flex}.input-row input{flex:1}.input-code{text-align:center;font-size:var(--text-2xl);letter-spacing:.5em;padding:.75rem}.search-field{position:relative}.search-field .search-icon{color:var(--fg-3);pointer-events:none;line-height:1;position:absolute;top:50%;left:.625rem;transform:translateY(-50%)}.search-field input{font-size:var(--text-sm);padding-left:2.25rem}.btn{border-radius:var(--r-md);font-size:var(--text-base);cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition), opacity var(--transition);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1.125rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);opacity:1}.btn-secondary{background:var(--bg-sunken);color:var(--fg-2);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);color:var(--fg);opacity:1}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--error-border)}.btn-danger:hover:not(:disabled){background:var(--danger);color:var(--accent-fg);border-color:var(--danger);opacity:1}.btn-ghost{color:var(--fg-2);background:0 0;border-color:#0000;padding-left:.5rem;padding-right:.5rem}.btn-ghost:hover:not(:disabled){color:var(--fg);background:var(--bg-hover);opacity:1}.btn-full{width:100%}.btn-sm{font-size:var(--text-sm);border-radius:var(--r-sm);padding:.3rem .75rem}.btn-icon{border-radius:var(--r-sm);color:var(--fg-3);padding:.375rem}.btn-icon.active{color:var(--accent)}.btn-icon:hover{color:var(--fg);background:var(--bg-hover)}.btn-icon svg{width:1.25rem;height:1.25rem}:where(.btn-ghost,.btn-icon).accent,:where(.btn-ghost,.btn-icon).accent:hover:not(:disabled){color:var(--accent)}:where(.btn-ghost,.btn-icon).danger,:where(.btn-ghost,.btn-icon).danger:hover:not(:disabled){color:var(--danger)}.split-actions{gap:.75rem;width:100%;display:flex}.split-actions>.btn{flex:1}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.form-actions.form-actions--between{justify-content:space-between}.circle-icon{border-radius:var(--r-xl);width:48px;height:48px;font-weight:700;font-size:var(--text-lg);cursor:pointer;background:var(--bg-hover);color:var(--fg-2);transition:border-radius var(--transition), background-color var(--transition), color var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.circle-icon:hover{border-radius:var(--r-lg);background:var(--accent-bg);color:var(--accent);opacity:1}.circle-icon:hover .tooltip{opacity:1}.circle-icon.active{border-radius:var(--r-lg);background:var(--accent);color:var(--accent-fg)}.circle-icon .tooltip{background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);font-size:var(--text-xs);border-radius:var(--r-sm);white-space:nowrap;box-shadow:var(--shadow-lg);pointer-events:none;opacity:0;z-index:var(--z-tooltip);transition:opacity var(--transition);padding:.25rem .5rem;position:absolute;top:50%;left:calc(100% + .75rem);transform:translateY(-50%)}.circle-icon .badge{background:var(--error);color:var(--on-error);font-size:var(--text-2xs);border-radius:var(--r-pill);border:2px solid var(--bg-sunken);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 3px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.circle-card,.section-card,.modal,.auth-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-xl)}.thread-item,.thread-post{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem}.circle-card{color:inherit;cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);padding:1.5rem;display:block}.circle-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);opacity:1}.circle-card:hover .circle-card__avatar{transform:scale(1.08)}.circle-card:hover h2{color:var(--accent)}.circle-card h2{font-size:var(--text-xl);transition:color var(--transition);margin-bottom:.375rem}.circle-card__avatar{background:var(--accent);width:48px;height:48px;color:var(--accent-fg);border-radius:var(--r-lg);font-weight:700;font-size:var(--text-xl);transition:transform var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:flex}.circle-card__header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.circle-card__meta{font-size:var(--text-xs);color:var(--fg-3);flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.circle-card__desc{color:var(--fg-2);font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.5em;margin-bottom:1.25rem;line-height:1.5;display:-webkit-box;overflow:hidden}.circle-card__stats{border-top:1px solid var(--border-2);flex-direction:column;gap:.5rem;padding-top:1rem;display:flex}.circle-card__stat-row{align-items:center;gap:1rem;display:flex}.circle-card__stat{align-items:center;gap:.375rem;display:flex}.circle-card__stat-count{font-size:var(--text-xs);color:var(--fg-3);font-weight:700}.circle-card__stat-count.has-unread{color:var(--accent)}.circle-card__activity-label{font-size:var(--text-2xs)}.circle-card__activity-row{justify-content:space-between;align-items:center;display:flex}.circle-card__activity-title{font-size:var(--text-xs);color:var(--fg);max-width:160px}.circle-card__activity-time,.circle-card__stats>p{font-size:var(--text-2xs);color:var(--fg-3);font-style:italic}.badge{font-size:var(--text-xs);border-radius:var(--r-pill);justify-content:center;align-items:center;padding:.15em .5em;font-weight:700;line-height:1.4;display:inline-flex}.badge-accent{background:var(--accent-bg);color:var(--accent);border:1px solid #0000}.badge-success{background:var(--success-bg);color:var(--success-fg);border:1px solid var(--success-border)}.badge-warning{background:var(--warning-bg);color:var(--warning-fg);border:1px solid var(--warning-border)}.badge-neutral{background:var(--bg-sunken);color:var(--fg-2);border:1px solid var(--border)}.unread-pill{background:var(--accent);color:var(--accent-fg);font-size:var(--text-2xs);border-radius:var(--r-pill);flex-shrink:0;margin-left:auto;padding:.1em .45em;font-weight:700;line-height:1.4}.new-pill{background:var(--error);color:var(--on-error);font-size:var(--text-xs);border-radius:var(--r-pill);padding:.1em .5em;font-weight:700}.role-badge{font-size:var(--text-2xs);border-radius:var(--r-sm);background:var(--bg-sunken);border:1px solid var(--border);padding:.15em .5em}.tag-chip{font-size:var(--text-xs);border-radius:var(--r-pill);background:var(--bg-sunken);color:var(--fg-2);border:1px solid var(--border);cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition);align-items:center;gap:.25rem;padding:.2em .55em;display:inline-flex}.tag-chip:hover,.tag-chip.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);opacity:1}.tag-chip--sm{font-size:var(--text-2xs);padding:.1em .45em}.tag-chip-selected{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border)}.tag-chip-selected .tag-remove{color:var(--accent-muted);cursor:pointer}.tag-chip-selected .tag-remove:hover{color:var(--accent)}.tag-chip-container{flex-wrap:wrap;gap:.5rem;margin-top:.375rem;display:flex}.tag-chip-container-selected{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;display:flex}.tag-input{width:140px;font-size:var(--text-xs);border-radius:var(--r-pill);padding:.2em .625em}.circle-nav{flex-direction:column;gap:.25rem;display:flex}.circle-nav .nav-item{border-radius:var(--r-md);font-size:var(--text-sm);color:var(--fg-2);transition:background-color var(--transition), color var(--transition);align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;font-weight:500;text-decoration:none;display:flex}.circle-nav .nav-item:hover{background:var(--bg-hover);color:var(--fg);opacity:1}.circle-nav .nav-item.active{background:var(--accent);color:var(--accent-fg)}.circle-nav .router-link-tag-active{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border)}.tag-section-title{margin-bottom:.375rem;padding:0 .5rem}.tag-list-item{align-items:center;gap:.25rem;display:flex}.tag-list-item>.nav-item{flex:1}.tag-list-item .tag-pin-btn{font-size:var(--text-xs);color:var(--fg-3);opacity:0;transition:opacity var(--transition);padding:.25rem}.tag-list-item .tag-pin-btn.pinned{opacity:1;color:var(--accent)}.tag-list-item:hover .tag-pin-btn,.tag-list-item:focus-within .tag-pin-btn{opacity:1}.member-section-header{cursor:pointer;justify-content:space-between;align-items:center;width:100%;padding:0 .5rem;display:flex}.member-section-header h3{transition:color var(--transition)}.member-section-header:hover h3{color:var(--fg)}.member-section-header .chevron{font-size:var(--text-xs);color:var(--fg-3);transition:transform var(--transition)}.member-section-header .chevron.open{transform:rotate(180deg)}.member-list{flex-direction:column;gap:.125rem;max-height:200px;display:flex;overflow-y:auto}.member-item{border-radius:var(--r-sm);transition:background-color var(--transition);align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}.member-item:hover{background:var(--bg-hover)}.member-item .member-name{font-size:var(--text-xs);color:var(--fg-3)}.member-item.online .member-name{color:var(--fg);font-weight:500}.presence-dot{border-radius:var(--r-pill);flex-shrink:0;width:8px;height:8px}.presence-dot.online{background:var(--online)}.presence-dot.offline{background:var(--fg-3);opacity:.4}.invite-btn{border-radius:var(--r-md);color:var(--accent);width:100%;transition:background-color var(--transition);align-items:center;gap:.5rem;padding:.5rem .625rem;text-decoration:none;display:flex}.invite-btn:hover{background:var(--accent-bg)}.thread-item{color:inherit;cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition-slow);display:block;position:relative}.thread-item:hover{border-color:var(--accent);box-shadow:var(--shadow);opacity:1}.thread-item.unread{border-left:3px solid var(--accent);background:var(--accent-bg)}.thread-item__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.375rem;display:flex}.thread-item__header-left{align-items:baseline;gap:.5rem;min-width:0;display:flex}.thread-item__header-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.thread-item__author,.thread-post__author-name{font-weight:700;font-size:var(--text-sm);color:var(--accent)}.thread-item__date,.thread-post__date,.thread-post__edited{font-size:var(--text-xs);color:var(--fg-3)}.thread-item__date{margin-left:.5rem}.thread-post__edited{font-style:italic}.thread-item__title-row{align-items:baseline;gap:.5rem;min-width:0;margin-bottom:.375rem;display:flex}:where(.thread-item__title-row)>h2{font-size:var(--text-base);flex-shrink:0;max-width:70%}:where(.thread-item__title-row)>h2>a{color:inherit}:where(.thread-item__title-row)>h2>a:hover{opacity:1}:where(.thread-item__title-row)>h2>a:after{content:"";position:absolute;inset:0}.thread-item__divider{color:var(--fg-3);flex-shrink:0}.thread-item__preview-inline{color:var(--fg-3);font-size:var(--text-sm);flex:1}.thread-item__tags{z-index:1;flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex;position:relative}.thread-item__footer{border-top:1px solid var(--border-2);font-size:var(--text-xs);color:var(--fg-3);justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.625rem;display:flex}.thread-item__footer>div{gap:1rem;display:flex}.thread-node{flex-direction:column;gap:1rem;display:flex}.thread-node.is-reply{border-left:2px solid var(--border);margin-left:.75rem;padding-left:1rem}@media (width>=601px){.thread-node.is-reply{margin-left:1.5rem}}.thread-post{transition:border-color var(--transition-slow)}.thread-post.is-root{border-color:var(--accent-border);padding:1.5rem}.thread-post.unread{border-left:3px solid var(--accent);background:var(--accent-bg)}.thread-post.is-deleted{opacity:.5;filter:grayscale(.5)}.thread-post__header{justify-content:space-between;align-items:center;margin-bottom:.625rem;display:flex}.thread-post__author-row{align-items:center;gap:.5rem;display:flex}.thread-post__avatar{border-radius:var(--r-pill);background:var(--accent-bg);width:24px;height:24px;font-size:var(--text-2xs);color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.thread-post__actions{align-items:center;gap:.5rem;display:flex}.thread-post__action-btn{font-size:var(--text-xs);color:var(--fg-3);cursor:pointer;transition:color var(--transition);font-weight:600}.thread-post__action-btn:hover{color:var(--fg)}.thread-post__action-btn.reply{color:var(--accent-muted)}.thread-post__action-btn.reply:hover{color:var(--accent)}.thread-post__action-btn.delete{color:var(--error-fg)}:where(.thread-post)>h1{font-size:var(--text-xl);margin-bottom:.75rem}.thread-post__body{font-size:var(--text-sm);color:var(--fg-2);line-height:1.7}.thread-post__body.is-deleted{color:var(--fg-3);font-style:italic}.thread-post__edit{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.reply-box{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.thread-post__edit-header,.reply-box__header{justify-content:space-between;align-items:center;display:flex}.thread-post__edit-actions,.reply-box__actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}:is(.thread-post__edit,.reply-box) textarea,:is(.thread-post__edit,.reply-box) .markdown-content--preview{font-size:var(--text-sm)}.thread-post__edit .markdown-content--preview{min-height:100px}.reply-box .markdown-content--preview{min-height:120px}.chat-view{flex-direction:column;height:100%;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.125rem;padding:.5rem;display:flex;overflow-y:auto}.chat-message{border-radius:var(--r-sm);font-size:var(--text-sm);transition:background-color var(--transition-slow), border-color var(--transition-slow);border-left:2px solid #0000;padding:.25rem .5rem}.chat-message.is-own{background:var(--bg-hover)}.chat-message.is-unread{background:var(--accent-bg);border-left-color:var(--accent)}.chat-message--mini{font-size:var(--text-xs);padding:.125rem .375rem}.chat-message--mini .chat-message__content{font-size:var(--text-xs)}.chat-message--mini .chat-message__time{font-size:var(--text-3xs)}.chat-message__author{font-weight:700}.chat-message__author.is-own{color:var(--accent-muted)}.chat-message__author:not(.is-own){color:var(--accent)}.chat-message__content{color:var(--fg-2);margin-left:.375rem;display:inline}.chat-message__content>p{margin:0;display:inline}.chat-message__time{font-size:var(--text-2xs);color:var(--fg-3);margin-left:.5rem}.chat-view>.input-row{margin-top:.75rem}.recent-chat{border-top:1px solid var(--border);margin-top:3rem;padding-top:2rem}.recent-chat__header{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.recent-chat__header h2{font-size:var(--text-lg);color:var(--fg);margin:0}.recent-chat__messages{flex-direction:column;gap:.25rem;display:flex}.modal-backdrop{z-index:var(--z-modal);background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:460px;box-shadow:var(--shadow-xl);flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.modal:focus{outline:none}.modal__header{justify-content:space-between;align-items:center;display:flex}.modal__header h2{font-size:var(--text-xl)}.modal__hint{font-size:var(--text-sm);color:var(--fg-2)}.modal textarea{height:96px}.section-card{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.section-card__header{justify-content:space-between;align-items:center;display:flex}.section-card__header h1{font-size:var(--text-xl)}.section-card__title{font-size:var(--text-xl);border-bottom:1px solid var(--border);padding-bottom:.75rem;font-weight:700}.section-card.danger{border-color:var(--error-border)}.section-card.danger .section-card__title{color:var(--danger);border-bottom-color:var(--error-border)}.row-list{flex-direction:column;gap:.5rem;display:flex}.invite-row,.member-row,.tag-manage-row{background:var(--bg-sunken);border-radius:var(--r-md);border:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem;display:flex}.invite-list{flex-direction:column;gap:.75rem;display:flex}.invite-list h2{font-size:var(--text-sm);color:var(--fg-2)}.invite-list>header{justify-content:space-between;align-items:center;display:flex}.invite-list.inactive{opacity:.6}.invite-list.inactive h2{color:var(--fg-3)}.invite-row>div{flex-direction:column;gap:.25rem;display:flex}.invite-row p:first-child{align-items:center;gap:.5rem;display:flex}.invite-row p:first-child>span{font-size:var(--text-xs);color:var(--fg-3)}.invite-row p+p{font-size:var(--text-2xs);color:var(--fg-3)}.invite-row p+p strong{text-transform:uppercase}.invite-row.inactive{opacity:.55}.invite-row.inactive .btn-ghost,.invite-row.inactive .btn-ghost:hover:not(:disabled){color:var(--fg-3)}.member-row small{font-size:var(--text-xs);color:var(--fg-3);margin-left:.5rem}.member-row>div:last-child{align-items:center;gap:.5rem;display:flex}.member-row select{font-size:var(--text-xs);width:auto;padding:.25rem 1.75rem .25rem .5rem}.invite-code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--accent-bg);color:var(--accent);border-radius:var(--r-sm);padding:.15em .5em;font-weight:700}.invite-code.inactive{background:var(--bg-hover);color:var(--fg-3)}.tag-manage-list{gap:.375rem;padding-top:.5rem}.tag-manage-row{transition:background-color var(--transition);padding:.5rem .75rem}.tag-manage-row>div:first-child{align-items:center;gap:.625rem;display:flex}.tag-manage-row>div:first-child>[aria-hidden=true]{color:var(--fg-3);font-size:var(--text-lg)}.tag-manage-row.pinned>div:first-child>[aria-hidden=true],.tag-manage-row.pinned strong{color:var(--accent)}.tag-manage-row small{font-size:var(--text-2xs);color:var(--fg-3);text-transform:uppercase;margin-left:.5rem;font-weight:700}.tag-manage-row:hover,.tag-manage-row:focus-within{background:var(--bg-hover)}:is(.tag-manage-row:hover,.tag-manage-row:focus-within) .tag-manage-row__actions{opacity:1}.tag-manage-row__edit{align-items:center;gap:.375rem;display:flex}.tag-manage-row__edit input{font-size:var(--text-sm);width:140px;padding:.2rem .5rem}.tag-manage-row__actions{opacity:0;transition:opacity var(--transition);align-items:center;gap:.125rem;display:flex}.toast-container{z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{pointer-events:auto;border-radius:var(--r-lg);min-width:250px;max-width:420px;box-shadow:var(--shadow-lg);border:1px solid;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;display:flex}.toast p{font-size:var(--text-sm);font-weight:500;line-height:1.4}.toast--success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}.toast--error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-fg)}.toast--info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.toast--warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.toast__close{opacity:.5;transition:opacity var(--transition);flex-shrink:0}.toast__close:hover{opacity:1}.toast__close svg{width:1rem;height:1rem}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;margin:0 auto;animation:.8s linear infinite spin}.empty-state{text-align:center;background:var(--bg-raised);border:1px dashed var(--border);border-radius:var(--r-xl);flex-direction:column;align-items:center;gap:.625rem;padding:4rem 1rem;display:flex}.empty-state .empty-state__icon{margin-bottom:.5rem;font-size:2.5rem;line-height:1}.empty-state h2{font-size:var(--text-lg);color:var(--fg);font-weight:700}.empty-state p{font-size:var(--text-sm);color:var(--fg-3)}.checkbox-row+.field{margin-top:.5rem}.palette-picker{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.palette-swatch{border-radius:var(--r-pill);cursor:pointer;width:36px;height:36px;transition:transform var(--transition), border-color var(--transition);border:3px solid #0000}.palette-swatch:hover{transform:scale(1.12)}.palette-swatch.active{border-color:var(--fg);transform:scale(1.12)}.palette-swatch.violet{background:var(--swatch-violet)}.palette-swatch.ocean{background:var(--swatch-ocean)}.palette-swatch.ember{background:var(--swatch-ember)}.palette-swatch.forest{background:var(--swatch-forest)}.palette-swatch.rose{background:var(--swatch-rose)}.palette-swatch.slate{background:var(--swatch-slate)}.markdown-content{overflow-wrap:anywhere;color:var(--fg-2);line-height:1.7}.markdown-content h1{font-size:var(--text-2xl);border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.5rem}.markdown-content h2{font-size:var(--text-xl);border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.25rem}.markdown-content h3{font-size:var(--text-lg);margin-bottom:.5rem}.markdown-content p{margin-bottom:1rem}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul{margin-bottom:1rem;padding-left:1.5rem;list-style:outside}.markdown-content ol{margin-bottom:1rem;padding-left:1.5rem;list-style:decimal}.markdown-content li{margin-bottom:.25rem}.markdown-content blockquote{border-left:3px solid var(--border);color:var(--fg-3);margin-bottom:1rem;padding-left:1rem;font-style:italic}.markdown-content pre{margin-bottom:1rem}.markdown-content pre code{font-size:var(--text-sm)}.markdown-content a{text-decoration:underline}.markdown-content a:hover{opacity:.75}.markdown-content img{border-radius:var(--r-md);margin:1rem 0}.markdown-content table{border-collapse:collapse;width:100%;margin-bottom:1rem}.markdown-content th,.markdown-content td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.markdown-content th{background:var(--bg-sunken);font-weight:700}.markdown-content--preview{background:var(--bg-sunken);border-radius:var(--r-md);border:1px solid var(--border);min-height:200px;padding:.75rem}.home-dashboard{max-width:1100px;margin:0 auto;padding:2rem}.home-dashboard__header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.home-dashboard__header>div{gap:.75rem;display:flex}.circles-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}@media (width<=600px){.home-dashboard{padding:1rem}.circles-grid{grid-template-columns:1fr}}.auth-page{background:var(--bg-sunken);justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.auth-card{width:100%;max-width:400px;box-shadow:var(--shadow-xl);padding:2.5rem 2rem}.auth-card h1{font-size:var(--text-2xl);text-align:center;margin-bottom:1.75rem}.auth-card :where(form>.btn){margin-top:1.5rem}.auth-mfa header{text-align:center;margin-bottom:1.5rem}.auth-mfa header p{color:var(--fg-2)}.auth-mfa header>[aria-hidden=true]{margin-bottom:.5rem;font-size:2.5rem}.auth-mfa>.btn{margin-top:1rem}.auth-mfa>.btn+.btn{margin-top:.5rem}.auth-status{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.auth-status p{color:var(--fg-2)}.auth-status small{color:var(--fg-3)}.auth-status__icon{font-size:3rem}.invite-card{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.invite-card h1{margin-bottom:0}.invite-card p{color:var(--fg-2)}.invite-card__hint{font-size:var(--text-sm)}.auth-footer{text-align:center;font-size:var(--text-sm);color:var(--fg-2);flex-direction:column;gap:.5rem;margin-top:1.25rem;display:flex}.auth-footer small a{color:var(--fg-3)}.auth-footer .app-version{margin-top:.5rem}.settings-page{max-width:560px;margin:2.5rem auto;padding:0 1rem 4rem}.settings-page>h1{margin-bottom:1.5rem}.settings-section{margin-bottom:2rem}.settings-section h2{font-size:var(--text-xl)}.settings-section>.section-card__header{margin-bottom:1rem}.settings-section h3{font-size:var(--text-sm);color:var(--fg-2);margin-bottom:1rem}.settings-section .form-actions{margin-top:2rem}.settings-section .form-actions a{font-size:var(--text-sm);color:var(--fg-2)}.mfa-setup{background:var(--bg-sunken);border:1px solid var(--accent-border);border-radius:var(--r-lg);text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;display:flex}.mfa-qr-wrapper{background:var(--qr-bg);border-radius:var(--r-md);padding:.5rem;display:inline-block}.mfa-setup>p:not(.mfa-secret){font-weight:700}.mfa-secret{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-3);word-break:break-all}.mfa-secret+p{margin-top:.5rem}.setting-panel{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem}.setting-panel p{font-size:var(--text-sm);color:var(--fg-2);margin-bottom:1rem}.mfa-disable{flex-direction:column;gap:.75rem;display:flex}.mfa-disable>p{color:var(--danger);font-weight:700}.circle-settings{max-width:var(--content-max);flex-direction:column;gap:2rem;width:100%;display:flex}.circle-settings textarea{height:80px}.thread-list{flex-direction:column;gap:.875rem;display:flex}.thread-list__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}@media (width<=600px){.thread-list__header{flex-direction:column;align-items:stretch}}.thread-list__header-meta{font-size:var(--text-sm);color:var(--fg-3);margin-top:.25rem}.thread-page{padding-bottom:3rem}.thread-page>.btn{margin-bottom:1rem}.search-page{flex-direction:column;gap:1.5rem;display:flex}.search-page>header{justify-content:space-between;align-items:center;display:flex}.search-page>header span{font-size:var(--text-sm);color:var(--fg-3)}.search-page>[role=status]{text-align:center;padding:4rem 0}.search-page>[role=status] p{color:var(--fg-2);margin-top:1rem}.error-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;height:100%;padding:3rem 1rem;display:flex}.error-state__icon{opacity:.4;font-size:4rem;line-height:1}.error-state p{color:var(--fg-2);max-width:36rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-enter-from{opacity:0;transform:translate(100%)}.toast-enter-to,.toast-leave-from{opacity:1;transform:translate(0)}.toast-leave-to{opacity:0;transform:translate(100%)}.toast-enter-active,.toast-leave-active{transition:opacity .25s,transform .25s}.toast-move{transition:transform .25s}
