*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:var(--font-sans);font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-fg);min-height:100vh}a{color:var(--color-brand-primary);text-decoration:none}a:hover{color:var(--color-brand-primaryHover)}button{font:inherit;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:background .12s ease,border-color .12s ease}button:hover{background:var(--color-surfaceAlt)}button.primary{background:var(--color-brand-primary);border-color:var(--color-brand-primary);color:var(--color-brand-primaryFg)}button.primary:hover{background:var(--color-brand-primaryHover)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;background:var(--color-surface);color:var(--color-fg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-brand-primary);outline-offset:1px}.container{max-width:1100px;margin:0 auto;padding:var(--space-6) var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.row{align-items:center}.col,.row{display:flex;gap:var(--space-3)}.col{flex-direction:column}.muted{color:var(--color-fgMuted)}.subtle{color:var(--color-fgSubtle);font-size:var(--font-size-sm)}.badge{display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--color-surfaceAlt);color:var(--color-fgMuted)}.badge.owner{background:var(--color-brand-primary)}.badge.admin,.badge.owner{color:var(--color-brand-primaryFg)}.badge.admin{background:var(--color-brand-accent)}.badge.invited{color:var(--color-warning);border:1px solid var(--color-warning);background:transparent}.sb-section{text-transform:uppercase;font-size:10px;letter-spacing:.8px;color:var(--color-fgSubtle);padding:14px 14px 6px;font-weight:600}.sb-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;color:var(--color-fg);padding:7px 10px;border-radius:var(--radius-md);text-align:left;font-size:13.5px;cursor:pointer;line-height:1.2;min-height:32px}.sb-item.active,.sb-item:hover{background:var(--color-surfaceAlt)}.sb-item .sb-label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-item .sb-meta{font-size:10.5px;color:var(--color-fgSubtle);text-transform:uppercase;letter-spacing:.4px}.sb-item.dim{color:var(--color-fgSubtle);cursor:not-allowed}.sb-item.dim:hover{background:transparent}.sb-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-fgMuted);flex-shrink:0}.sb-row{position:relative}.sb-row .sb-del{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--color-fgSubtle);width:24px;height:24px;padding:0;border-radius:var(--radius-md);opacity:0;transition:opacity .12s ease;display:flex;align-items:center;justify-content:center}.sb-row:hover .sb-del{opacity:1}.sb-row .sb-del:hover{background:var(--color-surface);color:var(--color-danger)}.sb-footer{padding:10px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px}.sb-footer .sb-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);cursor:default}.sb-footer .sb-user:hover{background:var(--color-surfaceAlt)}.sb-avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-brand-primary);color:var(--color-brand-primaryFg);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.sb-link{width:100%;text-align:left;border:none;background:transparent;color:var(--color-fgMuted);font-size:12.5px;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer}.sb-link:hover{background:var(--color-surfaceAlt);color:var(--color-fg)}.sb-scroll::-webkit-scrollbar{width:8px}.sb-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:8px}.sb-scroll:hover::-webkit-scrollbar-thumb{background:var(--color-border)}