.btn{justify-content:center;align-items:center;gap:var(--space-3);min-height:36px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font:var(--weight-medium) var(--text-base) / var(--lh-base) var(--font-sans);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid transparent;text-decoration:none;display:inline-flex}.btn-sm{min-height:28px;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-lg{min-height:44px;padding:var(--space-4) var(--space-6);font-size:var(--text-md)}.btn-primary{background:var(--accent-bg);color:var(--text-inverse)}.btn-primary:hover{background:var(--accent-bg-hover)}.btn-secondary{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{background:var(--bg-hover)}.btn-ghost{color:var(--text-primary);background:0 0}.btn-ghost:hover{background:var(--bg-hover)}.btn-danger{background:var(--danger-bg);color:var(--text-inverse)}.btn-danger:hover{filter:brightness(1.08)}.btn-link{color:var(--text-link);text-underline-offset:2px;background:0 0;min-height:auto;padding:0;text-decoration:underline;text-decoration-thickness:1px}.btn:disabled,.btn[disabled],.btn[aria-disabled=true]{background:var(--c-neutral-300);color:var(--c-neutral-500);cursor:not-allowed;border-color:transparent}.btn-block{width:100%}a{color:var(--text-link)}a:hover{color:var(--c-accent-700)}.input{width:100%;height:40px;padding:var(--space-3) var(--space-5);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font:var(--weight-regular) var(--text-md) / var(--lh-md) var(--font-sans);transition:border-color var(--motion-fast), box-shadow var(--motion-fast)}.input::placeholder{color:var(--text-muted)}.input:focus,.input.is-focus{border-color:var(--accent-fg);outline:none;box-shadow:0 0 0 3px rgba(60,190,239,.18)}.input-error,.input.is-error{border-color:var(--danger-fg)}.input-error:focus,.input.is-error.is-focus{box-shadow:0 0 0 3px rgba(242,130,143,.22)}.input-group{position:relative}.input-group .input{padding-right:44px}.input-group .affix{top:50%;right:var(--space-4);color:var(--text-muted);cursor:pointer;font-size:var(--text-md);background:0 0;border:0;align-items:center;display:inline-flex;position:absolute;transform:translateY(-50%)}.field{gap:var(--space-3);flex-direction:column;display:flex}.field-label{font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);gap:var(--space-3);align-items:baseline;display:flex}.field-required{color:var(--danger-fg);margin-left:2px}.field-optional{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-regular)}.field-help{font:var(--weight-regular) var(--text-xs) / var(--lh-xs) var(--font-sans);color:var(--text-muted)}.field-error{font:var(--weight-regular) var(--text-xs) / var(--lh-xs) var(--font-sans);color:var(--danger-fg);gap:var(--space-3);align-items:center;display:flex}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-7);box-shadow:var(--shadow-sm)}.table{border-collapse:collapse;width:100%}.table thead th{background:var(--bg-surface);text-align:left;padding:var(--space-4) var(--space-5);font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-subtle);position:sticky;top:0}.table tbody td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);font:var(--weight-regular) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);vertical-align:middle}.table tbody tr:hover{background:var(--bg-hover)}.table tbody tr.is-selected{background:var(--bg-selected);box-shadow:inset 2px 0 0 var(--accent-fg)}.table .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.tag{align-items:center;gap:var(--space-3);height:22px;padding:0 var(--space-4);border-radius:var(--radius-full);font:var(--weight-medium) var(--text-xs) / 1 var(--font-sans);display:inline-flex}.tag .dot{border-radius:var(--radius-full);background:currentColor;width:8px;height:8px;display:inline-block}.tag-success{color:var(--success-fg);background:rgba(46,184,114,.14)}.tag-info{color:var(--info-fg);background:rgba(79,138,224,.14)}.tag-neutral{color:var(--text-secondary);background:rgba(94,106,130,.2)}.tag-warning{color:var(--warning-fg);background:rgba(224,169,59,.14)}.tag-danger{color:var(--danger-fg);background:rgba(230,76,95,.14)}.bot-badge{align-items:center;gap:var(--space-3);height:22px;padding:0 var(--space-4);border-radius:var(--radius-full);font:var(--weight-medium) var(--text-xs) / 1 var(--font-sans);white-space:nowrap;display:inline-flex}.bot-badge--play,.bot-badge--idle{color:var(--success-fg);background:rgba(46,184,114,.14)}.bot-badge--pending{color:var(--warning-fg);background:rgba(224,169,59,.14)}.bot-badge--off{color:var(--text-secondary);background:rgba(94,106,130,.2)}.bot-badge--error{color:var(--danger-fg);background:rgba(230,76,95,.14)}.bot-badge+.bot-badge{margin-left:var(--space-3)}.flow-icon{color:currentColor;opacity:.8;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.bot-badge .flow-icon{opacity:1;width:1em;height:1em}.skeleton{background:linear-gradient(90deg, var(--bg-surface-sunken) 0%, var(--bg-hover) 50%, var(--bg-surface-sunken) 100%);border-radius:var(--radius-md);background-size:200% 100%;height:14px;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.toast{gap:var(--space-4);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:380px;padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-md);grid-template-columns:4px 24px 1fr auto;align-items:start;display:grid}.toast .accent-bar{border-radius:var(--radius-full);background:var(--accent-fg);align-self:stretch}.toast.toast-success .accent-bar{background:var(--success-fg)}.toast.toast-warning .accent-bar{background:var(--warning-fg)}.toast.toast-danger .accent-bar{background:var(--danger-fg)}.toast .icon{font-size:var(--text-lg);color:var(--accent-fg);margin-top:2px;line-height:1}.toast.toast-success .icon{color:var(--success-fg)}.toast.toast-warning .icon{color:var(--warning-fg)}.toast.toast-danger .icon{color:var(--danger-fg)}.toast .title{font:var(--weight-semibold) var(--text-base) / var(--lh-base) var(--font-sans)}.toast .detail{font:var(--weight-regular) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);margin-top:4px}.toast .toast-link{margin-top:var(--space-2);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--accent-fg);word-break:break-all;display:inline-block}.toast .close{color:var(--text-muted);cursor:pointer;font-size:var(--text-md);background:0 0;border:0}.empty{text-align:center;padding:var(--space-9) var(--space-7);align-items:center;gap:var(--space-5);flex-direction:column;display:flex}.empty .icon{border-radius:var(--radius-full);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);width:60px;height:60px;color:var(--accent-fg);place-items:center;font-size:28px;display:grid}.empty h3{font:var(--weight-semibold) var(--text-xl) / var(--lh-xl) var(--font-sans);color:var(--text-primary);margin:0}.empty p{max-width:48ch;font:var(--weight-regular) var(--text-base) / var(--lh-base) var(--font-sans);color:var(--text-secondary);margin:0}.empty .actions{gap:var(--space-4);margin-top:var(--space-3);display:inline-flex}.banner{align-items:flex-start;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);border-left:4px solid var(--danger-bg);color:var(--danger-fg);background:rgba(230,76,95,.1);display:flex}.banner .body{font:var(--weight-regular) var(--text-sm) / var(--lh-md) var(--font-sans);word-break:break-word}.banner .title{font-weight:var(--weight-semibold)}.banner.banner-warning{border-left-color:var(--warning-bg);color:var(--warning-fg);background:rgba(224,169,59,.1)}.banner.banner-info{border-left-color:var(--info-bg);color:var(--info-fg);background:rgba(79,138,224,.1)}.banner.banner-success{border-left-color:var(--success-bg);color:var(--success-fg);background:rgba(46,184,114,.1)}.spinner{border:2px solid var(--border-subtle);border-radius:var(--radius-full);width:16px;height:16px;animation:spin var(--motion-spinner,1s) linear infinite;vertical-align:-3px;border-top-color:currentColor;display:inline-block}.spinner.is-sm{border-width:1.5px;width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:var(--border-subtle);animation:none}.spinner:after{content:"…";color:currentColor;font-size:var(--text-sm);line-height:1}}.menu{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-2) 0;min-width:200px;max-width:320px;max-height:min(60vh,420px);z-index:var(--z-popover);font:var(--weight-regular) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);overflow-y:auto}.menu-filter{width:calc(100% - var(--space-5) - var(--space-5));margin:var(--space-2) var(--space-5) var(--space-3);height:32px;padding:0 var(--space-4);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit;display:block}.menu-filter:focus{border-color:var(--accent-fg);outline:none;box-shadow:0 0 0 3px rgba(60,190,239,.18)}.menu-section-label{padding:var(--space-3) var(--space-5) var(--space-2);font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.menu-item{align-items:center;gap:var(--space-4);width:100%;min-height:32px;padding:var(--space-3) var(--space-5);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.menu-item.is-rich{min-height:40px}.menu-item:hover{background:var(--bg-hover)}.menu-item.is-active{background:var(--bg-selected);outline:none}.menu-item:focus-visible{background:var(--bg-selected);outline:none}.menu-item .check{width:14px;color:var(--accent-fg);flex:none;display:inline-flex}.menu-item .icn{width:16px;color:var(--text-secondary);flex:none;display:inline-flex}.menu-item .label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.menu-item .meta{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none}.menu-item.is-danger{color:var(--danger-fg)}.menu-item:disabled,.menu-item[aria-disabled=true]{color:var(--text-muted);cursor:not-allowed}.menu-divider{height:1px;margin:var(--space-2) 0;background:var(--border-subtle)}.menu-empty{padding:var(--space-5) var(--space-5) var(--space-6);color:var(--text-muted);text-align:center;font-size:var(--text-xs)}.menu-footer{gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle);display:flex}.menu-footer .btn{flex:auto}.dropdown-anchor{display:inline-flex;position:relative}.dropdown-anchor>.menu{top:calc(100% + var(--space-2));position:absolute;left:0}.dropdown-anchor.is-above>.menu{top:auto;bottom:calc(100% + var(--space-2))}@media (width<=480px){.dropdown-anchor>.menu{border-radius:var(--radius-md) var(--radius-md) 0 0;border-top:4px solid var(--accent-fg);width:100vw;max-width:none;max-height:60vh;box-shadow:var(--shadow-lg);position:fixed;inset:auto 0 0}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:var(--z-overlay);background:rgba(11,14,19,.7);place-items:center;display:grid;position:fixed;inset:0}.modal{width:min(560px, calc(100vw - var(--space-8)));background:var(--bg-surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow:hidden}.modal.report-bug-dialog{width:min(600px, calc(100vw - var(--space-8)));max-height:calc(100vh - var(--space-8));flex-direction:column;display:flex}.modal.report-bug-dialog .modal-body{flex:auto;overflow-y:auto}.modal-header,.modal-body,.modal-footer{padding:var(--space-7)}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font:var(--weight-semibold) var(--text-lg) / var(--lh-lg) var(--font-sans);margin:0}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:var(--space-4);display:flex}.bug-report-context{padding:var(--space-5);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.bug-report-context__title{margin:0 0 var(--space-4);font:var(--weight-semibold) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary)}.bug-report-context__list{margin:0}.bug-report-context__list dt{margin:var(--space-3) 0 0;font:var(--weight-medium) var(--text-xs) / var(--lh-sm) var(--font-sans);color:var(--text-muted)}.bug-report-context__list dt:first-child{margin-top:0}.bug-report-context__list dd{font:var(--weight-regular) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);word-break:break-word;margin:0}.bug-report-context__empty{color:var(--text-muted)}.bug-report-context__items{padding-left:var(--space-5);margin:0}.bug-report-context__items li{margin:0}#report-bug-happened.input,#report-bug-expected.input,#report-bug-steps.input{height:auto;min-height:4.25rem}.steps{justify-content:center;align-items:center;gap:var(--space-3);margin:var(--space-7) 0;display:flex}.steps .step{align-items:center;gap:var(--space-3);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);display:inline-flex}.steps .step .dot{border-radius:var(--radius-full);background:var(--c-neutral-300);width:18px;height:18px;color:var(--c-neutral-500);place-items:center;font-size:10px;display:inline-grid}.steps .step.is-active .dot{background:var(--accent-bg);color:var(--text-inverse)}.steps .step.is-active{color:var(--text-primary)}.steps .step.is-done .dot{background:var(--success-bg);color:var(--text-inverse)}.steps .connector{background:var(--border-subtle);width:56px;height:1px}.app{grid-template-columns:var(--sidebar-width-expanded) 1fr;grid-template-rows:var(--header-height) 1fr;height:100vh;display:grid}@media (width<=768px){.app{grid-template-columns:1fr;grid-template-rows:var(--header-height) auto 1fr}.app .sidebar{display:none}.app .header{padding:0 var(--space-5);grid-column:1}.app .main{padding:var(--space-5) var(--space-5);grid-column:1}}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);padding:var(--space-5) 0;grid-row:1/3;overflow-y:auto}.sidebar .brand{padding:0 var(--space-6) var(--space-7);font:var(--weight-bold) var(--text-md) / var(--lh-md) var(--font-sans);color:var(--text-primary);align-items:center;gap:var(--space-3);display:flex}.sidebar .brand .mark{background:var(--accent-fg);border-radius:var(--radius-full);width:14px;height:14px;box-shadow:0 0 12px rgba(60,190,239,.7)}.sidebar .nav-group{margin-top:var(--space-5)}.sidebar .nav-group-label{padding:0 var(--space-6) var(--space-3);font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.sidebar .nav-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);border-left:2px solid transparent;text-decoration:none;display:flex}.sidebar .nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar .nav-item.is-active{background:var(--bg-selected);color:var(--accent-fg);border-left-color:var(--accent-fg)}.sidebar .nav-item .icn{color:currentColor;opacity:.8;place-items:center;width:16px;height:16px;display:inline-grid}.header{background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);padding:0 var(--space-7);align-items:center;gap:var(--space-5);grid-column:2;display:flex}.header .selector{align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-5);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font:var(--weight-medium) var(--text-base) / var(--lh-base) var(--font-sans);cursor:pointer;display:inline-flex}.header .selector .mark{color:var(--accent-fg)}.header .ws-dot{border-radius:var(--radius-full);background:var(--success-bg);width:8px;height:8px;box-shadow:0 0 8px var(--success-bg)}.header .spacer{margin-left:auto}.header .user{align-items:center;gap:var(--space-3);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);display:inline-flex}.header button.user{cursor:pointer;background:0 0;border:0;padding:0}.header button.user:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-md)}.header .user-menu-anchor{display:inline-flex}.header .user-menu-anchor>.dropdown-anchor>.menu{min-width:12rem;left:auto;right:0}.header .avatar{border-radius:var(--radius-full);background:var(--c-accent-100);width:28px;height:28px;color:var(--accent-fg);font-weight:var(--weight-semibold);font-size:var(--text-xs);place-items:center;display:grid}.main{padding:var(--space-7) var(--space-8);grid-column:2;overflow-y:auto}.main h1{margin:0 0 var(--space-3);font:var(--weight-bold) var(--text-xl) / var(--lh-xl) var(--font-sans);color:var(--text-primary)}.main .crumb{font:var(--weight-regular) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-muted);margin-bottom:var(--space-7)}.stack-md>*+*{margin-top:var(--space-5)}.data-table{border-collapse:collapse;background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle);vertical-align:top}.data-table th{font:var(--weight-semibold) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);background:var(--bg-surface-sunken)}.data-table tbody tr:last-child td{border-bottom:0}.data-table .actions-col{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.data-table .client-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.data-table .client-name{font-weight:var(--weight-semibold)}.data-table .client-uid{color:var(--text-muted);font-size:var(--text-xs);font-family:var(--font-mono,monospace);text-overflow:ellipsis;white-space:nowrap;max-width:22ch;overflow:hidden}button.client-uid-copy{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0;display:inline-block}button.client-uid-copy:hover{color:var(--text-link);outline:none;text-decoration:underline}button.client-uid-copy:focus-visible{color:var(--text-link);outline:none;text-decoration:underline}.data-table .match-cell>*+*{margin-top:2px}.data-table .match-cell .muted{color:var(--text-muted);font-size:var(--text-xs)}.inline-move{gap:var(--space-2);align-items:center;display:inline-flex}.inline-move .input{width:6ch;height:28px;padding:0 var(--space-2);font-size:var(--text-sm)}.channel-tree-panel{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.channel-tree-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--bg-surface-sunken);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.channel-tree-toolbar-meta{flex-direction:column;gap:2px;display:flex}.channel-tree-count{font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary)}.channel-tree-hint{color:var(--text-muted);font-size:var(--text-xs)}.channel-tree,.channel-tree-children,.channel-row{margin:0;padding:0;list-style:none}.channel-row-body{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);padding-left:calc(var(--space-5) + var(--channel-depth,0) * 20px);border-bottom:1px solid var(--border-subtle);box-shadow:inset calc(var(--channel-depth,0) * 2px) 0 0 var(--border-subtle);display:flex}.channel-row:hover>.channel-row-body{background:var(--bg-hover)}.channel-row:has(>.channel-clients)>.channel-row-body{border-bottom:0}.channel-row.channel-spacer>.channel-row-body{background:var(--bg-surface-sunken);min-height:28px;padding-top:var(--space-2);padding-bottom:var(--space-2)}.channel-header{justify-content:space-between;gap:var(--space-4);flex:auto;align-items:center;min-width:0;display:flex}.channel-identity{flex-direction:column;gap:2px;min-width:0;display:flex}.channel-identity-row{align-items:center;gap:var(--space-2);min-width:0;display:flex}.channel-glyph{color:var(--text-muted);font-weight:var(--weight-semibold);flex:none}.channel-header .channel-name{font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.channel-topic{color:var(--text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.channel-header .channel-meta{gap:var(--space-2);flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;display:inline-flex}.channel-header .channel-count{font-variant-numeric:tabular-nums}.channel-row-actions{flex:none}.channel-spacer-line{border-top:1px solid var(--border-subtle);height:0;margin:var(--space-2) 0;flex:auto}.channel-spacer-line.dotted{border-top-style:dotted}.channel-spacer-line.dashed{border-top-style:dashed}.channel-spacer-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;flex:auto}.channel-spacer-label.center{text-align:center}.channel-spacer-label.right{text-align:right}.channel-clients{padding:0 var(--space-5) var(--space-3);padding-left:calc(var(--space-5) + 28px + var(--channel-depth,0) * 20px);gap:var(--space-2);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;margin:0;list-style:none;display:flex}.channel-row:has(>.channel-clients):hover>.channel-clients{background:var(--bg-hover)}.channel-client{align-items:center;gap:var(--space-2);padding:2px var(--space-3);background:var(--bg-surface-sunken);border-radius:var(--radius-full);font-size:var(--text-sm);display:inline-flex}.channel-client .client-dot{background:var(--success-fg);border-radius:50%;flex:none;width:6px;height:6px}.channel-client.is-away{opacity:.7}.channel-client.is-away .client-dot{background:var(--warning-fg)}.channel-client.is-muted .client-dot{background:var(--text-muted)}.channel-client.is-talking .client-dot{background:var(--accent-fg)}.channel-client .client-flag{color:var(--text-muted);font-size:var(--text-xs)}@media (width<=720px){.channel-row-body{flex-wrap:wrap;align-items:flex-start}.channel-header{flex-wrap:wrap}.channel-row-actions{justify-content:flex-start;width:100%}}.info-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.info-row{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.info-pair{margin:0}.info-label{font:var(--weight-medium) var(--text-xs) / var(--lh-sm) var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.info-value{font:var(--weight-semibold) var(--text-md) / var(--lh-md) var(--font-sans);color:var(--text-primary);margin:0}.info-hint{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-2) 0 0}.log-toolbar{gap:var(--space-4);flex-wrap:wrap;align-items:end;display:flex}.log-filter{flex-direction:column;flex:240px;gap:4px;display:flex}.log-filter span{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase}.log-stream{padding:var(--space-4);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:60vh;font-family:var(--font-mono,monospace);font-size:var(--text-sm);margin:0;list-style:none;overflow-y:auto}.log-stream .log-line{white-space:pre-wrap;word-break:break-word;border-bottom:1px dashed transparent;padding:2px 0}.log-stream .log-empty{color:var(--text-muted);font-style:italic}.ban-create{gap:var(--space-4);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;display:grid}.ban-create .form-row{flex-direction:column;gap:4px;display:flex}.ban-create label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase}.activity-feed{margin:0;padding:0;list-style:none}.activity-entry{padding:var(--space-3) var(--space-4);border-left:3px solid var(--border-subtle);margin-bottom:var(--space-2);background:var(--bg-surface-sunken);border-radius:0 var(--radius-md) var(--radius-md) 0}.activity-entry.activity-warning{border-left-color:var(--warning-fg)}.activity-entry.activity-danger{border-left-color:var(--danger-fg)}.activity-entry.activity-success{border-left-color:var(--success-fg)}.activity-feed-empty{color:var(--text-muted);padding:var(--space-3) var(--space-4)}.toast-region{top:var(--space-5);right:var(--space-5);gap:var(--space-3);z-index:50;pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast-region>.toast{pointer-events:auto}.ws-banner{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);margin-bottom:var(--space-5);border-radius:var(--radius-md);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);font-size:var(--text-sm);display:flex}.ws-banner.ws-banner-warn{border-color:var(--warning-bg);color:var(--warning-fg);background:rgba(224,169,59,.1)}.ws-banner.ws-banner-error{border-color:var(--danger-bg);color:var(--danger-fg);background:rgba(230,76,95,.1)}.ws-banner .icon{font-weight:var(--weight-bold)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-title-block{gap:var(--space-3);flex-direction:column;max-width:720px;display:flex}.page-title-block h1{margin:0}.page-lede{color:var(--text-secondary);font-size:var(--text-base);margin:0}.page-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.page-actions .list-filter{min-width:16rem;max-width:28rem}.list-filter-meta{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.widgets-table .embed-cell{padding:var(--space-3) var(--space-5);min-width:280px}.widgets-table .server-cell{flex-direction:column;gap:2px;display:flex}.widgets-table .server-name{font-weight:var(--weight-medium)}.widgets-table .server-host{color:var(--text-muted);font-size:var(--text-xs);font-family:var(--font-mono,monospace)}.widgets-table .token-prefix{font-family:var(--font-mono,monospace)}.widgets-table .theme-tag{padding:2px var(--space-3);background:var(--bg-surface-sunken);color:var(--text-secondary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:lowercase;display:inline-block}.embed-urls{gap:var(--space-2);flex-direction:column;display:flex}.embed-url{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard);grid-template-columns:56px 1fr auto;display:grid}.embed-url:hover{background:var(--bg-hover)}.embed-url:focus-visible{box-shadow:var(--shadow-focus);outline:none}.embed-url .embed-label{text-transform:uppercase;font-weight:var(--weight-semibold);color:var(--text-secondary);letter-spacing:.04em;font-size:var(--text-2xs)}.embed-url .embed-path{font-family:var(--font-mono,monospace);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.embed-url .embed-copy{color:var(--accent-fg);font-weight:var(--weight-medium)}.share-steps{padding-left:var(--space-5);gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-sm);flex-direction:column;margin:0;display:flex}.share-steps .share-copy-row{margin-left:calc(-1 * var(--space-5));list-style:none}.share-copy-row .embed-url{grid-template-columns:150px 1fr auto;width:100%}.widget-theme-grid{gap:var(--space-4);margin-top:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.widget-theme-tile{gap:var(--space-2);padding:var(--space-3);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--motion-fast) var(--ease-standard);flex-direction:column;display:flex;position:relative}.widget-theme-tile:hover{border-color:var(--border-strong)}.widget-theme-tile.is-selected{border:2px solid var(--accent-fg);padding:calc(var(--space-3) - 1px)}.widget-theme-tile:focus-visible{box-shadow:var(--shadow-focus);outline:none}.widget-theme-svg{border-radius:var(--radius-sm);width:100%;height:auto;display:block}.widget-theme-tile.is-transparent .widget-theme-svg{background-image:linear-gradient(45deg, var(--c-neutral-100) 25%, transparent 25%), linear-gradient(-45deg, var(--c-neutral-100) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--c-neutral-100) 75%), linear-gradient(-45deg, transparent 75%, var(--c-neutral-100) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;background-color:var(--c-neutral-50)}.widget-theme-name{font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);text-transform:lowercase;justify-content:space-between;align-items:center;display:flex}.widget-theme-check{color:var(--accent-fg);font-weight:var(--weight-bold)}.widget-theme-warning{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-left:3px solid var(--warning-bg);border-radius:var(--radius-md);color:var(--warning-fg);background:rgba(224,169,59,.1)}.widget-toggles{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);background:var(--bg-surface-sunken)}.widget-toggles legend.field-label{padding:0 var(--space-3)}.widget-toggles .toggle-row{gap:0 var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);cursor:pointer;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:baseline;display:grid}.widget-toggles .toggle-row:last-child{border-bottom:0}.widget-toggles .toggle-row input{grid-row:1/span 2;align-self:center}.widget-toggles .toggle-label{font-weight:var(--weight-medium)}.widget-toggles .toggle-help{color:var(--text-muted);font-size:var(--text-xs)}.depth-slider{align-items:center;gap:var(--space-4);margin-top:var(--space-2);display:flex}.depth-slider input[type=range]{flex:auto}.depth-slider .depth-value{min-width:2ch;font-family:var(--font-mono,monospace);font-weight:var(--weight-semibold);color:var(--text-primary);text-align:right}.modal.modal-lg{width:min(720px, calc(100vw - var(--space-8)))}.drawer-backdrop{-webkit-backdrop-filter:blur(4px);z-index:var(--z-overlay);background:rgba(11,14,19,.7);justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg-surface-raised);width:min(480px,100vw);height:100vh;box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:drawer-slide-in var(--motion-slow) var(--ease-emphasized);flex-direction:column;display:flex}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.drawer{animation:none}}.drawer-header,.drawer-footer{padding:var(--space-6) var(--space-7)}.drawer-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.drawer-header h2{font:var(--weight-semibold) var(--text-lg) / var(--lh-lg) var(--font-sans);margin:0}.drawer-body{padding:var(--space-6) var(--space-7);flex:auto;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:var(--space-4);display:flex}@media (width<=480px){.drawer{width:100vw}}.muted{color:var(--text-muted)}.field-hint{font:var(--weight-regular) var(--text-xs) / var(--lh-xs) var(--font-sans);color:var(--text-muted)}.field-inline{align-items:center;gap:var(--space-3);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-primary);flex-wrap:wrap;display:flex}.field-inline .field-hint{flex-basis:100%}.tabs{gap:var(--space-2);border-bottom:1px solid var(--border-subtle);display:flex}.tab{appearance:none;padding:var(--space-3) var(--space-4);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text-primary)}.tab.is-active{color:var(--accent-fg);border-bottom-color:var(--accent-fg)}.tab:focus-visible{outline:2px solid var(--accent-bg);outline-offset:-2px}.tab-panel{padding-top:var(--space-5)}.tab-panel[hidden]{display:none}.tab-panel:focus-visible{outline:2px solid var(--accent-bg);outline-offset:2px;border-radius:var(--radius-md)}.switch{appearance:none;align-items:center;gap:var(--space-4);width:100%;min-height:var(--touch-min);padding:var(--space-2) 0;cursor:pointer;color:var(--text-primary);font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);text-align:left;background:0 0;border:0;display:inline-flex}.switch-label{flex:auto;min-width:0}.switch-track{border-radius:var(--radius-full);background:var(--c-neutral-300);width:36px;height:20px;transition:background var(--motion-fast) var(--ease-standard);flex:none;position:relative}.switch.is-on .switch-track{background:var(--accent-bg)}.switch-thumb{border-radius:var(--radius-full);background:var(--text-primary);width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform var(--motion-fast) var(--ease-standard);position:absolute;top:2px;left:2px}.switch.is-on .switch-thumb{transform:translate(16px)}.switch:focus-visible{outline:none}.switch:focus-visible .switch-track{box-shadow:var(--shadow-focus)}.switch:disabled{opacity:.5;cursor:not-allowed}.chip-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.chip{appearance:none;border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font:var(--weight-regular) var(--text-xs) / var(--lh-xs) var(--font-sans);color:var(--text-secondary);cursor:pointer}.chip:hover{background:var(--bg-hover);color:var(--text-primary)}.chip:disabled{opacity:.5;cursor:not-allowed}.kv-row{gap:var(--space-3);align-items:center;display:flex}.kv-row>.input{flex:auto;min-width:0}.kv-row>button{flex:none;min-width:24px;min-height:24px}.disclosure>summary{cursor:pointer;font:var(--weight-medium) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary)}.disclosure>summary:hover{color:var(--text-primary)}.disclosure[open]>summary{margin-bottom:var(--space-4)}.legend{margin:0;padding:0;list-style:none}.legend-row{gap:var(--space-4);align-items:baseline;display:flex}.last-run-cell{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:inline-flex}.last-run-cell .last-run-when{font-size:var(--text-xs);white-space:nowrap}@media (width<=768px){.data-table--cards{background:0 0;border:0;border-radius:0;overflow:visible}.data-table--cards thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.data-table--cards,.data-table--cards tbody,.data-table--cards tr,.data-table--cards td{width:100%;display:block}.data-table--cards tbody tr{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) 0}.data-table--cards tbody tr+tr{margin-top:var(--space-4)}.data-table--cards td{justify-content:space-between;align-items:baseline;gap:var(--space-5);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle);text-align:right;display:flex}.data-table--cards tr td:last-child{border-bottom:0}.data-table--cards td:before{content:attr(data-label);text-align:left;font:var(--weight-semibold) var(--text-sm) / var(--lh-sm) var(--font-sans);color:var(--text-secondary);flex:none}.data-table--cards td.client-cell{text-align:left}.data-table--cards td.client-cell:before{content:none}.data-table--cards td.actions-col{text-align:left;flex-direction:column;align-items:stretch}.data-table--cards td.actions-col:before{margin-bottom:var(--space-2)}.data-table--cards td.actions-col .btn{width:100%}}.tag-icn{font-size:var(--text-2xs);line-height:1}.user-username{font-family:var(--font-mono);font-size:var(--text-sm)}.user-ts{color:var(--text-secondary);white-space:nowrap}.row-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.row-actions .btn[disabled]{opacity:.4;cursor:not-allowed}.row-action-danger:not([disabled]):hover{color:var(--danger-fg)}.password-row{gap:var(--space-3);align-items:center;display:flex}.password-row .input{font-family:var(--font-mono);flex:auto}.password-warning{margin-top:var(--space-2)}.role-fieldset{gap:var(--space-3);border:0;flex-direction:column;margin:0;padding:0;display:flex}.role-option{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;align-items:flex-start;display:flex}.role-option:hover{background:var(--bg-hover)}.role-option-body{flex-direction:column;gap:2px;display:flex}.role-option-label{font-weight:var(--weight-medium)}.role-option-summary{color:var(--text-muted);font-size:var(--text-xs)}.audit-layout{gap:var(--space-5);margin-top:var(--space-5);align-items:flex-start;display:flex}.audit-filters{gap:var(--space-4);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);top:var(--space-5);flex-direction:column;flex:0 0 220px;display:flex;position:sticky}.audit-filter{gap:var(--space-2);flex-direction:column;display:flex}.audit-filter label{font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.audit-main{flex:auto;min-width:0}.audit-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.audit-count{color:var(--text-secondary);font-size:var(--text-sm)}.audit-toolbar-actions{gap:var(--space-3);display:flex}.audit-scroll{border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:64vh;overflow-y:auto}.audit-table{border:0;border-radius:0}.audit-table thead th{z-index:var(--z-sticky);position:sticky;top:0}.audit-row{cursor:pointer}.audit-row:focus-visible{outline:2px solid var(--accent-fg);outline-offset:-2px}.audit-row.is-selected{background:var(--bg-selected)}.audit-row--failure td:first-child{box-shadow:inset 2px 0 0 var(--danger-fg)}.audit-time{font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.audit-deleted{color:var(--text-muted);font-style:italic}.audit-payload-cell{max-width:280px}.audit-payload-preview{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.audit-load-more{margin:var(--space-4);width:calc(100% - var(--space-7))}.audit-kind{padding:1px var(--space-3);border-radius:var(--radius-full);font:var(--weight-semibold) var(--text-2xs) / 1.7 var(--font-sans);white-space:nowrap;display:inline-block}.audit-kind--create{background:var(--success-bg);color:var(--text-inverse)}.audit-kind--remove{background:var(--danger-bg);color:var(--text-inverse)}.audit-kind--security{background:var(--warning-bg);color:var(--text-inverse)}.audit-kind--role{background:var(--accent-bg);color:var(--text-inverse)}.audit-kind--neutral{background:var(--bg-hover);color:var(--text-secondary)}.audit-outcome{font-size:var(--text-xs);text-transform:capitalize}.audit-outcome--failure{color:var(--danger-fg);font-weight:var(--weight-semibold)}.audit-outcome--success{color:var(--text-muted)}.audit-detail{background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:72vh;top:var(--space-5);flex-direction:column;flex:0 0 340px;align-self:stretch;display:flex;position:sticky}.audit-detail-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.audit-detail-header h2{font:var(--weight-semibold) var(--text-md) / var(--lh-md) var(--font-sans);margin:0}.audit-detail-body{padding:var(--space-5);flex:auto;overflow-y:auto}.audit-detail-fields{gap:var(--space-3);flex-direction:column;margin:0;display:flex}.audit-detail-field{flex-direction:column;gap:1px;display:flex}.audit-detail-field dt{font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.audit-detail-field dd{font-size:var(--text-sm);color:var(--text-primary);word-break:break-word;margin:0}.audit-detail-subhead{margin:var(--space-5) 0 var(--space-3);font:var(--weight-semibold) var(--text-sm) / var(--lh-sm) var(--font-sans)}.audit-payload-full{padding:var(--space-4);background:var(--bg-surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word;max-height:280px;margin:0;overflow-y:auto}.audit-detail-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);justify-content:flex-end;display:flex}@media (width<=900px){.audit-layout{flex-direction:column}.audit-filters,.audit-detail{flex-basis:auto;width:100%;max-height:none;position:static}}.mono,.mod-grant-key{font-family:var(--font-mono,monospace)}.mod-panel{margin-top:var(--space-6)}.mod-panel-head{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.mod-badge{padding:1px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border-strong);font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);display:inline-block}.mod-badge--open{border-color:var(--accent-fg);color:var(--accent-fg)}.mod-badge--actioned{border-color:var(--warning-fg);color:var(--warning-fg)}.mod-badge--resolved{border-color:var(--success-fg);color:var(--success-fg)}.mod-badge--appealed{border-color:var(--danger-fg);color:var(--danger-fg)}.mod-badge--role{border-color:var(--border-subtle);color:var(--text-muted)}.mod-case-head{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.mod-case-head h1{margin:0}.mod-kv{gap:var(--space-3) var(--space-6);margin:var(--space-5) 0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.mod-kv>div{flex-direction:column;gap:2px;display:flex}.mod-kv dt{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.mod-kv dd{color:var(--text-primary);margin:0}.mod-timeline{margin:0;padding:0;list-style:none}.mod-timeline-row{gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);display:flex}.mod-timeline-row:last-child{border-bottom:0}.mod-timeline-icon{text-align:center;width:24px;color:var(--text-muted);flex:none}.mod-timeline-body{flex:auto;min-width:0}.mod-timeline-head{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.mod-timeline-when{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.mod-timeline-caselink{font-size:var(--text-xs)}.mod-timeline-reason{margin:var(--space-2) 0 0;color:var(--text-secondary);white-space:pre-wrap}.mod-note-list{margin:0;padding:0;list-style:none}.mod-note{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle)}.mod-note:last-child{border-bottom:0}.mod-note-body{margin:0 0 var(--space-2);white-space:pre-wrap}.mod-user-picker{max-width:420px}.mod-grant-list{margin:0;padding:0;list-style:none}.mod-grant{border-bottom:1px solid var(--border-subtle)}.mod-grant:last-child{border-bottom:0}.mod-grant--danger .mod-grant-name span:first-child{color:var(--danger-fg)}.mod-grant-main{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) 0;cursor:pointer;display:flex}.mod-grant-main input[type=checkbox]{flex:none;margin-top:2px}.mod-grant-text{flex-direction:column;gap:2px;min-width:0;display:flex}.mod-grant-name{align-items:center;gap:var(--space-3);font-weight:var(--weight-semibold);flex-wrap:wrap;display:flex}.mod-grant-desc{color:var(--text-secondary);font-size:var(--text-sm)}.mod-grant-key{color:var(--text-muted);font-size:var(--text-xs)}.mod-grant-actions{align-items:center;gap:var(--space-4);margin-top:var(--space-5);display:flex}.mod-panel-link{font-size:var(--text-sm);white-space:nowrap}.mod-filter-bar{gap:var(--space-2);margin:var(--space-4) 0;flex-direction:column;display:flex}.mod-timeline-actions{margin-top:var(--space-3)}.mod-fp-check{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex}.mod-fp-check input[type=checkbox]{flex:none;margin-top:3px}.mod-fp-check-text{flex-direction:column;gap:2px;display:flex}.mod-fp-check-hint{color:var(--text-muted);font-size:var(--text-xs)}.mod-rate--high{color:var(--danger-fg);font-weight:var(--weight-semibold)}select.input{cursor:pointer}textarea.input{resize:vertical;min-height:56px;font:inherit}.msg-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.msg-head h1{margin:0}.msg-loading{padding:var(--space-7);color:var(--text-muted);text-align:center}.msg-layout{margin-top:var(--space-6);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);grid-template-columns:minmax(240px,320px) 1fr;min-height:360px;display:grid;overflow:hidden}.msg-inbox{border-right:1px solid var(--border-subtle);overflow-y:auto}.msg-list{margin:0;padding:0;list-style:none}.msg-row{align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);border:0;border-bottom:1px solid var(--border-subtle);text-align:left;cursor:pointer;color:var(--text-primary);transition:background var(--motion-fast) ease;background:0 0;display:flex}.msg-row:hover{background:var(--bg-hover)}.msg-row:focus-visible{box-shadow:var(--shadow-focus);outline:none}.msg-row.is-selected{background:var(--bg-hover)}.msg-dot{border-radius:var(--radius-full);background:0 0;flex:none;width:8px;height:8px;margin-top:6px}.msg-dot[data-unread=true]{background:var(--accent-fg)}.msg-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.msg-row-subject{font-size:var(--text-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-row.is-unread .msg-row-subject{font-weight:var(--weight-semibold)}.msg-row-meta{gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);display:flex}.msg-row-sender{font-family:var(--font-mono,monospace);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-row-dotsep{flex:none}.msg-reading{padding:var(--space-7)}.msg-reading-empty{height:100%;color:var(--text-muted);place-items:center;display:grid}.msg-reading-head{border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-4);margin-bottom:var(--space-5)}.msg-reading-head h2{margin:0 0 var(--space-2)}.msg-reading-meta{font-size:var(--text-sm);color:var(--text-muted);margin:0}.msg-reading-body{white-space:pre-wrap;word-break:break-word;color:var(--text-primary);line-height:var(--lh-md)}.msg-reading-actions{margin-top:var(--space-6);justify-content:flex-end;display:flex}.msg-back{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);color:var(--accent-fg);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;display:none}.msg-back:focus-visible{box-shadow:var(--shadow-focus);outline:none}.msg-recipient-row{gap:var(--space-3);align-items:stretch;display:flex}.msg-recipient-row .input{flex:auto;min-width:0}.msg-recipient-row .dropdown-anchor{flex:none}.msg-recipient-pick{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--text-muted)}.msg-pick-nick{display:block}.msg-pick-uid{font-family:var(--font-mono,monospace);font-size:var(--text-2xs);color:var(--text-muted);display:block}@media (width<=720px){.msg-layout{grid-template-columns:1fr;min-height:0}.msg-inbox{border-right:0}.msg-layout.is-reading .msg-inbox,.msg-layout:not(.is-reading) .msg-reading{display:none}.msg-back{display:inline-block}.msg-recipient-row{flex-wrap:wrap}.msg-recipient-row .dropdown-anchor,.msg-recipient-row .input{flex:100%}}.card-header{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.card-header h3{margin:0}.card-header__aside{align-items:center;gap:var(--space-4);display:flex}.card-row{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);display:flex}.card-row .input{flex:auto}.card-actions{gap:var(--space-3);margin-top:var(--space-4);display:flex}.player-card,.queue-card{gap:var(--space-5);flex-direction:column;display:flex}.np-eyebrow{font:var(--weight-semibold) var(--text-2xs) / var(--lh-2xs) var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.now-playing{align-items:flex-start;gap:var(--space-4);display:flex}.now-playing--empty{gap:var(--space-2);flex-direction:column}.np-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.np-title{font:var(--weight-semibold) var(--text-lg) / var(--lh-lg) var(--font-sans);color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.np-meta{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.np-glyph{color:var(--accent-fg)}.np-dot{color:var(--text-muted)}.np-duration{font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--text-muted)}.np-resolving{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--bg-surface-raised,var(--border-subtle));color:var(--text-secondary);font-size:var(--text-sm);max-width:100%;display:inline-flex}.np-resolving--retrying{color:var(--text-primary);background:var(--bg-surface-raised,var(--border-subtle))}.np-resolving__spinner{border:2px solid var(--border-subtle);border-top-color:var(--accent-fg);border-radius:50%;flex:none;width:10px;height:10px;animation:.8s linear infinite np-resolving-spin}.np-resolving__label{color:var(--text-muted);font-weight:var(--weight-medium)}.np-resolving--retrying .np-resolving__label{color:var(--text-primary);font-weight:var(--weight-semibold)}.np-resolving__query{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@keyframes np-resolving-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.np-resolving__spinner{animation:none}}.np-eq{flex:none;align-items:flex-end;gap:2px;width:18px;height:22px;display:inline-flex}.np-eq span{background:var(--accent-fg);border-radius:var(--radius-sm);flex:1 1 0;height:35%}.np-eq.is-playing span{animation:.9s ease-in-out infinite np-eq-bounce}.np-eq.is-playing span:nth-child(2){animation-delay:.15s}.np-eq.is-playing span:nth-child(3){animation-delay:.3s}@keyframes np-eq-bounce{0%,to{height:30%}50%{height:100%}}@media (prefers-reduced-motion:reduce){.np-eq span,.np-eq.is-playing span{height:55%;animation:none}}.np-progress{margin-top:var(--space-1);border-radius:var(--radius-full);background:var(--border-subtle);height:4px;overflow:hidden}.np-progress__fill{border-radius:inherit;background:var(--accent-fg);height:100%;transition:width .24s ease-out}@media (prefers-reduced-motion:reduce){.np-progress__fill{transition:none}}.np-progress--seekable{cursor:pointer;position:relative;overflow:visible}.np-progress__seek{opacity:0;cursor:pointer;appearance:none;background:0 0;width:100%;margin:0;padding:0;position:absolute;inset:-8px 0}.player-controls{align-items:center;gap:var(--space-4);display:flex}.player-controls__spacer{flex:auto}.volume-control{align-items:center;gap:var(--space-3);flex:none;display:flex}.volume-control__glyph{font-size:1rem;line-height:1}.volume-control__slider{width:7rem;accent-color:var(--c-accent-500);cursor:pointer}.volume-control__slider:disabled{cursor:not-allowed;opacity:.5}.volume-control__value{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:var(--text-sm);text-align:right;min-width:2.75rem}.queue{border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin:0;padding:0;list-style:none;overflow:hidden}.queue-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex}.queue-row:last-child{border-bottom:none}.queue-row:hover{background:var(--bg-hover)}.queue-row__pos{font-variant-numeric:tabular-nums;color:var(--text-muted);flex:none;min-width:1.5em}.queue-row__body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.queue-row__title{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.queue-row__sub{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.queue-row__duration{font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--text-muted);flex:none}.queue-row__actions{gap:var(--space-2);flex:none;display:flex}.icon-btn{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-md);cursor:pointer;transition:background var(--motion-fast) ease, color var(--motion-fast) ease;background:0 0;border:1px solid transparent;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.icon-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn--danger:hover:not(:disabled){color:var(--danger-fg)}.modal.modal-sm{width:min(420px, calc(100vw - var(--space-8)))}@media (width<=540px){.player-controls{flex-wrap:wrap}.player-controls .btn-lg{flex:100%;order:2}.player-controls__spacer{display:none}.player-controls .btn-danger{flex:100%;order:3}.volume-control{flex:100%;order:4;justify-content:center}.queue-row{flex-wrap:wrap}.queue-row__actions{flex:100%;justify-content:flex-end}.icon-btn{width:var(--touch-comfortable);height:var(--touch-comfortable)}}.data-table th.num-col,.data-table td.num-col{text-align:right}.sg-row{cursor:default}.sg-name-cell{cursor:pointer}.sg-name-cell:hover .sg-name{color:var(--text-link)}.sg-name-cell:focus-visible{box-shadow:var(--shadow-focus);outline:none}.sg-name{color:var(--text-primary);font-weight:600;display:block}.sg-id{font-size:var(--text-xs);color:var(--text-muted);display:block}.sg-skeleton-row{height:var(--space-5);border-radius:var(--radius-sm)}.sg-detail-actions{gap:var(--space-2);display:flex}.sg-add-member{gap:var(--space-2);flex-direction:column;display:flex}.sg-add-member-row{gap:var(--space-2);align-items:center;display:flex}.sg-add-member-row .input{flex:auto}.sg-danger-zone{margin-top:var(--space-6)}.perm-editor{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.perm-editor-retry{margin-top:var(--space-3)}.perm-skeleton{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.perm-skeleton-row{height:var(--space-7);border-radius:var(--radius-sm)}.perm-toolbar{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.perm-search{flex:220px;min-width:180px}.perm-type-filter{flex:none}.perm-list{margin:0;padding:0;list-style:none}.perm-row{border-bottom:1px solid var(--border-subtle);padding:var(--space-3) 0}.perm-row:last-child{border-bottom:none}.perm-row-head{align-items:flex-start;gap:var(--space-3);display:flex}.perm-row-main{gap:var(--space-1);flex:auto;min-width:0;display:grid}.perm-row-name{color:var(--text-primary);font-weight:600}.perm-row-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.perm-row-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.perm-num-row{align-items:center;gap:var(--space-3);display:flex}.perm-num-input{flex:none;width:7rem}.perm-chip{font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--lh-2xs);text-transform:lowercase;padding:2px var(--space-2);border-radius:var(--radius-sm);flex:none;margin-top:2px}.perm-chip--bool{background:var(--success-bg);color:var(--success-fg)}.perm-chip--num{background:var(--info-bg);color:var(--info-fg)}.perm-disclosure{margin:var(--space-2) 0 0 var(--space-7);padding:var(--space-3);background:var(--bg-surface-sunken);border-radius:var(--radius-md);gap:var(--space-3);display:grid}.perm-flag{gap:var(--space-2);align-items:flex-start;display:flex}.perm-flag-text{gap:2px;display:grid}.perm-flag-name{color:var(--text-primary);font-weight:600}.perm-flag-gloss{font-size:var(--text-xs);color:var(--text-muted)}.perm-list-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);display:flex}.perm-error-list{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.perm-cap-hint{margin-top:var(--space-3)}.perm-save-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;background:var(--bg-canvas);border-top:1px solid var(--border-subtle);display:flex;position:sticky;bottom:0}.perm-catalog{gap:var(--space-4);grid-template-columns:240px 1fr;align-items:start;display:grid}.perm-rail{gap:var(--space-3);flex-direction:column;display:flex}.perm-rail ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.perm-rail-item{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.perm-rail-item:hover:not(:disabled){background:var(--bg-hover)}.perm-rail-item.is-active{background:var(--bg-selected);color:var(--text-primary);font-weight:600}.perm-rail-item:disabled{opacity:.4;cursor:not-allowed}.perm-rail-item:focus-visible{box-shadow:var(--shadow-focus);outline:none}.perm-rail-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.perm-companion-toggle{gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);padding-top:var(--space-2);border-top:1px solid var(--border-subtle);align-items:center;display:flex}.perm-catalog-list{min-width:0}@media (width<=540px){.perm-catalog{grid-template-columns:1fr}.perm-rail ul{grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}.perm-num-input{width:5rem}.sg-add-member-row{flex-wrap:wrap}}.token-key-masked{font-family:var(--font-mono,monospace);color:var(--text-muted);letter-spacing:.06em}.token-key-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.token-result-key{padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);font-family:var(--font-mono,monospace);font-size:var(--text-lg);color:var(--text-primary);word-break:break-all;text-align:center}.token-result-copy{justify-content:center;display:flex}.perm-row-toggle{align-items:flex-start;gap:var(--space-3);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;display:flex}.perm-row-toggle:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.perm-row-toggle .perm-row-main{align-items:center;gap:var(--space-2);flex-flow:wrap}.perm-row-chevron{color:var(--text-muted);font-size:var(--text-xs);flex:none;margin-top:2px}.perm-catalog-detail{margin-left:var(--space-7)}.perm-catalog-desc{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--text-sm)}.perm-catalog-meta{gap:var(--space-2);margin:0;display:grid}.perm-catalog-meta>div{gap:var(--space-3);grid-template-columns:120px 1fr;display:grid}.perm-catalog-meta dt{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.perm-catalog-meta dd{color:var(--text-primary);font-size:var(--text-sm);margin:0}.perm-lookup{gap:var(--space-4);display:grid}.perm-lookup-pickers{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=540px){.perm-lookup-pickers{grid-template-columns:1fr}.perm-catalog-detail{margin-left:0}.perm-catalog-meta>div{grid-template-columns:1fr;gap:2px}}