:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width:768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{inset:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media(prefers-reduced-motion:reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}ion-app{--ion-background-color: transparent}ion-content{--background: transparent;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0}ion-page{background:var(--bg-primary)}ion-router-outlet{background:var(--bg-primary)}#root,ion-app,ion-router-outlet,ion-page{height:100%;width:100%}ion-content{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}:root{--font-primary: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Instrument Sans", var(--font-primary);--font-mono: "JetBrains Mono", "SF Mono", monospace;--header-height: 56px;--status-height: 32px;--sidebar-width: 280px;--input-height: 52px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-sidebar: 100;--z-header: 50;--z-dropdown: 150;--z-overlay: 200;--z-modal: 300;--z-context: 400;--z-lightbox: 500}[data-theme=slate],[data-theme=slate][data-mode=dark]{--accent: #5b8def;--accent-hover: #4a7ad8;--accent-text: #ffffff;--msg-radius: var(--radius-sm);--avatar-radius: var(--radius-full);--bubble-mode: 0;--bg-primary: #2f3136;--bg-secondary: #292b2f;--bg-tertiary: #202225;--bg-elevated: #393c41;--text-primary: #dcddde;--text-secondary: #a3a6aa;--text-tertiary: #72767d;--border-color: rgba(255, 255, 255, .06);--hover-bg: rgba(79, 84, 92, .32);--active-bg: rgba(79, 84, 92, .52);--shadow-sm: 0 1px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .24);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .32);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #ed4245;--danger-bg: rgba(237, 66, 69, .12);--success: #3ba55c;--success-bg: rgba(59, 165, 92, .12);--warning: #faa61a;--warning-bg: rgba(250, 166, 26, .12);--info: #5b8def;--mention-bg: rgba(91, 141, 239, .12);--mention-color: #7eaaff;--mention-hover-bg: rgba(91, 141, 239, .24);--channel-mention-bg: rgba(59, 165, 92, .12);--channel-mention-color: #57d47a;--role-mention-bg: rgba(235, 69, 158, .12);--role-mention-color: #f47bba;--code-bg: #1e1f22;--code-border: rgba(255, 255, 255, .04);--code-keyword: #c678dd;--code-string: #98c379;--code-number: #d19a66;--code-comment: #5c6370;--code-lang: rgba(255, 255, 255, .3)}[data-theme=slate][data-mode=light]{--accent: #4a76cc;--accent-hover: #3d65b5;--accent-text: #ffffff;--bg-primary: #f2f3f5;--bg-secondary: #e8eaed;--bg-tertiary: #dbdee1;--bg-elevated: #ffffff;--text-primary: #2e3035;--text-secondary: #5c5f66;--text-tertiary: #8b8e94;--border-color: rgba(0, 0, 0, .08);--hover-bg: rgba(0, 0, 0, .04);--active-bg: rgba(0, 0, 0, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #d83c3e;--danger-bg: rgba(216, 60, 62, .08);--success: #2d8049;--success-bg: rgba(45, 128, 73, .08);--warning: #c7890a;--warning-bg: rgba(199, 137, 10, .08);--info: #4a76cc;--mention-bg: rgba(74, 118, 204, .1);--mention-color: #3a65b0;--mention-hover-bg: rgba(74, 118, 204, .2);--channel-mention-bg: rgba(45, 128, 73, .1);--channel-mention-color: #2d8049;--role-mention-bg: rgba(200, 50, 130, .1);--role-mention-color: #c03282;--code-bg: #f0f1f3;--code-border: rgba(0, 0, 0, .06);--code-keyword: #a626a4;--code-string: #50a14f;--code-number: #c18401;--code-comment: #a0a1a7;--code-lang: rgba(0, 0, 0, .3)}[data-theme=midnight],[data-theme=midnight][data-mode=dark]{--accent: #58a6ff;--accent-hover: #4090e0;--accent-text: #ffffff;--msg-radius: var(--radius-sm);--avatar-radius: var(--radius-full);--bubble-mode: 0;--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-elevated: #30363d;--text-primary: #c9d1d9;--text-secondary: #8b949e;--text-tertiary: #6e7681;--border-color: #30363d;--hover-bg: rgba(88, 166, 255, .06);--active-bg: rgba(88, 166, 255, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 3px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #f85149;--danger-bg: rgba(248, 81, 73, .12);--success: #3fb950;--success-bg: rgba(63, 185, 80, .12);--warning: #d29922;--warning-bg: rgba(210, 153, 34, .12);--info: #58a6ff;--mention-bg: rgba(88, 166, 255, .12);--mention-color: #79c0ff;--mention-hover-bg: rgba(88, 166, 255, .24);--channel-mention-bg: rgba(63, 185, 80, .12);--channel-mention-color: #56d364;--role-mention-bg: rgba(219, 97, 162, .12);--role-mention-color: #db61a2;--code-bg: #0d1117;--code-border: #30363d;--code-keyword: #ff7b72;--code-string: #a5d6ff;--code-number: #79c0ff;--code-comment: #8b949e;--code-lang: rgba(201, 209, 217, .3)}[data-theme=midnight][data-mode=light]{--accent: #0969da;--accent-hover: #0550ae;--accent-text: #ffffff;--bg-primary: #f0f4fc;--bg-secondary: #e4eaf6;--bg-tertiary: #d8e0f0;--bg-elevated: #ffffff;--text-primary: #1a1f36;--text-secondary: #525f7f;--text-tertiary: #8898aa;--border-color: #c4cfe0;--hover-bg: rgba(9, 105, 218, .06);--active-bg: rgba(9, 105, 218, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 3px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #cf222e;--danger-bg: rgba(207, 34, 46, .08);--success: #1a7f37;--success-bg: rgba(26, 127, 55, .08);--warning: #9a6700;--warning-bg: rgba(154, 103, 0, .08);--info: #0969da;--mention-bg: rgba(9, 105, 218, .1);--mention-color: #0550ae;--mention-hover-bg: rgba(9, 105, 218, .2);--channel-mention-bg: rgba(26, 127, 55, .1);--channel-mention-color: #1a7f37;--role-mention-bg: rgba(191, 57, 137, .1);--role-mention-color: #bf3989;--code-bg: #edf2f9;--code-border: rgba(0, 0, 0, .06);--code-keyword: #cf222e;--code-string: #0a3069;--code-number: #0550ae;--code-comment: #6e7781;--code-lang: rgba(0, 0, 0, .3)}[data-theme=amoled],[data-theme=amoled][data-mode=dark]{--accent: #a78bfa;--accent-hover: #8b6fe0;--accent-text: #000000;--msg-radius: var(--radius-sm);--avatar-radius: var(--radius-full);--bubble-mode: 0;--bg-primary: #000000;--bg-secondary: #0a0a0a;--bg-tertiary: #141414;--bg-elevated: #1c1c1c;--text-primary: #d4d4d4;--text-secondary: #9e9e9e;--text-tertiary: #616161;--border-color: #1e1e1e;--hover-bg: rgba(167, 139, 250, .06);--active-bg: rgba(167, 139, 250, .12);--shadow-sm: none;--shadow-md: 0 2px 8px rgba(0, 0, 0, .6);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .8);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--success: #22c55e;--success-bg: rgba(34, 197, 94, .12);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .12);--info: #a78bfa;--mention-bg: rgba(167, 139, 250, .12);--mention-color: #c4b5fd;--mention-hover-bg: rgba(167, 139, 250, .24);--channel-mention-bg: rgba(34, 197, 94, .12);--channel-mention-color: #4ade80;--role-mention-bg: rgba(244, 114, 182, .12);--role-mention-color: #f472b6;--code-bg: #0a0a0a;--code-border: #1e1e1e;--code-keyword: #c792ea;--code-string: #c3e88d;--code-number: #f78c6c;--code-comment: #616161;--code-lang: rgba(212, 212, 212, .3)}[data-theme=amoled][data-mode=light]{--accent: #7c3aed;--accent-hover: #6d28d9;--accent-text: #ffffff;--bg-primary: #fafafa;--bg-secondary: #f0f0f0;--bg-tertiary: #e5e5e5;--bg-elevated: #ffffff;--text-primary: #1a1a1a;--text-secondary: #525252;--text-tertiary: #a3a3a3;--border-color: #e0e0e0;--hover-bg: rgba(124, 58, 237, .05);--active-bg: rgba(124, 58, 237, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #dc2626;--danger-bg: rgba(220, 38, 38, .08);--success: #16a34a;--success-bg: rgba(22, 163, 74, .08);--warning: #d97706;--warning-bg: rgba(217, 119, 6, .08);--info: #7c3aed;--mention-bg: rgba(124, 58, 237, .1);--mention-color: #6d28d9;--mention-hover-bg: rgba(124, 58, 237, .2);--channel-mention-bg: rgba(22, 163, 74, .1);--channel-mention-color: #16a34a;--role-mention-bg: rgba(219, 39, 119, .1);--role-mention-color: #db2777;--code-bg: #f0f0f0;--code-border: rgba(0, 0, 0, .06);--code-keyword: #7c3aed;--code-string: #16a34a;--code-number: #d97706;--code-comment: #a3a3a3;--code-lang: rgba(0, 0, 0, .3)}[data-theme=dawn],[data-theme=dawn][data-mode=light]{--accent: #6366f1;--accent-hover: #4f46e5;--accent-text: #ffffff;--msg-radius: var(--radius-sm);--avatar-radius: var(--radius-full);--bubble-mode: 0;--bg-primary: #faf8f5;--bg-secondary: #f3f0eb;--bg-tertiary: #eae6df;--bg-elevated: #ffffff;--text-primary: #3d3833;--text-secondary: #78716c;--text-tertiary: #a8a29e;--border-color: #ddd8d0;--hover-bg: rgba(99, 102, 241, .05);--active-bg: rgba(99, 102, 241, .1);--shadow-sm: 0 1px 2px rgba(44, 40, 37, .04);--shadow-md: 0 4px 8px rgba(44, 40, 37, .06);--shadow-lg: 0 8px 24px rgba(44, 40, 37, .08);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #dc2626;--danger-bg: rgba(220, 38, 38, .08);--success: #16a34a;--success-bg: rgba(22, 163, 74, .08);--warning: #ca8a04;--warning-bg: rgba(202, 138, 4, .08);--info: #6366f1;--mention-bg: rgba(99, 102, 241, .1);--mention-color: #4f46e5;--mention-hover-bg: rgba(99, 102, 241, .2);--channel-mention-bg: rgba(22, 163, 74, .1);--channel-mention-color: #16a34a;--role-mention-bg: rgba(219, 39, 119, .1);--role-mention-color: #db2777;--code-bg: #f0ece6;--code-border: #ddd8d0;--code-keyword: #6d28d9;--code-string: #16a34a;--code-number: #b45309;--code-comment: #a8a29e;--code-lang: rgba(61, 56, 51, .3)}[data-theme=dawn][data-mode=dark]{--accent: #818cf8;--accent-hover: #6366f1;--accent-text: #ffffff;--bg-primary: #292524;--bg-secondary: #1c1917;--bg-tertiary: #171412;--bg-elevated: #3b3632;--text-primary: #e7e5e4;--text-secondary: #a8a29e;--text-tertiary: #78716c;--border-color: #3b3632;--hover-bg: rgba(129, 140, 248, .06);--active-bg: rgba(129, 140, 248, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--msg-bg: transparent;--msg-own-bg: transparent;--msg-own-text: var(--text-primary);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--success: #22c55e;--success-bg: rgba(34, 197, 94, .12);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .12);--info: #818cf8;--mention-bg: rgba(129, 140, 248, .12);--mention-color: #a5b4fc;--mention-hover-bg: rgba(129, 140, 248, .24);--channel-mention-bg: rgba(34, 197, 94, .12);--channel-mention-color: #4ade80;--role-mention-bg: rgba(244, 114, 182, .12);--role-mention-color: #f472b6;--code-bg: #1c1917;--code-border: #3b3632;--code-keyword: #c084fc;--code-string: #86efac;--code-number: #fbbf24;--code-comment: #78716c;--code-lang: rgba(231, 229, 228, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}*{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y}.message-list,.settings-content,.sidebar-content,.members-list,.gallery-grid,.pinned-list,.search-results{touch-action:pan-y;-webkit-overflow-scrolling:touch}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh;min-height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;font-size:16px;border:none;outline:none;background:none;color:inherit}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}::selection{background:var(--accent);color:var(--accent-text)}.icon-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.link,.mention{color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:2px;cursor:pointer;transition:opacity var(--transition-fast)}.link:hover,.mention:hover{opacity:.8}.bot-badge{display:inline-flex;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-sm);margin-left:6px}.login-card{width:100%;max-width:380px;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.login-header{padding:40px 32px 24px;text-align:center}.login-logo{width:64px;height:64px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-lg)}.login-header h1{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:8px}.login-header p{color:var(--text-secondary);font-size:14px}.login-form{padding:0 32px 32px}.input-group{margin-bottom:16px}.input-group input{width:100%;padding:14px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:15px;transition:all var(--transition-fast)}.input-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.input-group input::placeholder{color:var(--text-tertiary)}.login-error{padding:12px;margin-bottom:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#ef4444;font-size:14px;text-align:center}.login-btn{width:100%;padding:14px 24px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:var(--accent-text);font-size:15px;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{padding:16px 32px;text-align:center;border-top:1px solid var(--border-color);color:var(--text-tertiary);font-size:12px}.main-window{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg-primary)}.header{height:var(--header-height);display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:var(--z-header)}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-info{flex:1;min-width:0;overflow:hidden}.header-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:600;color:var(--text-primary);min-width:0}.header-title svg{color:var(--text-tertiary);flex-shrink:0}.header-channel-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-subtitle-row{display:flex;align-items:center;gap:8px;margin-top:2px;min-width:0}.header-subtitle{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-dot{width:8px;height:8px;background:#3ba55c;border-radius:50%;flex-shrink:0}.header-actions{position:relative;flex-shrink:0}.header-dropdown{position:absolute;top:100%;right:0;margin-top:8px;min-width:200px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000040;padding:6px;z-index:var(--z-dropdown)}.header-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;color:var(--text-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);text-align:left}.header-dropdown-item svg{color:var(--text-secondary);flex-shrink:0}.header-dropdown-item:hover svg{color:var(--text-primary)}.header-dropdown-divider{height:1px;background:var(--border-color);margin:6px 0}.main-content{flex:1;display:flex;overflow:hidden;position:relative}.server-menu-panel{position:fixed;top:calc(var(--header-height) + 8px);left:16px;width:320px;max-height:calc(100vh - var(--header-height) - 60px);background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:var(--z-dropdown);display:flex;flex-direction:column;overflow:hidden}.server-menu-panel-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-color);font-weight:600;font-size:14px;color:var(--text-primary)}.server-menu-panel-header .server-count{margin-left:auto;background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-full);font-size:12px;color:var(--text-secondary)}.server-menu-list{flex:1;overflow-y:auto;padding:8px}.server-menu-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-tertiary);text-align:center}.server-menu-empty p{font-size:12px;margin:0}.server-menu-item{margin-bottom:4px;border-radius:var(--radius-md);overflow:hidden}.server-menu-item.expanded{background:var(--bg-tertiary)}.server-menu-header{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background .1s ease}.server-menu-header.selected{background:var(--accent);color:#fff}.server-menu-header.selected .server-menu-members{color:#ffffffb3}.server-menu-icon{width:36px;height:36px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.server-menu-icon-placeholder{width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.server-menu-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.server-menu-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-menu-header.selected .server-menu-name{color:#fff}.server-menu-members{font-size:11px;color:var(--text-tertiary)}.server-menu-arrow{color:var(--text-tertiary);flex-shrink:0}.server-menu-header.selected .server-menu-arrow{color:#ffffffb3}.server-menu-channels{overflow:hidden;padding:4px 0}.server-menu-loading{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--text-tertiary);font-size:12px}.server-menu-loading svg{animation:spin 1s linear infinite}.server-menu-category{margin-bottom:2px}.server-menu-category .category-header{display:flex;align-items:center;gap:2px;padding:4px 8px;width:100%;background:none;border:none;color:var(--text-tertiary);font-size:10px;font-weight:700;letter-spacing:.3px;cursor:pointer}.server-menu-category .category-header:hover{color:var(--text-secondary)}.server-menu-category .category-arrow{display:flex;width:12px}.server-menu-channel{width:100%;display:flex;align-items:center;gap:6px;padding:5px 8px 5px 16px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;text-align:left;cursor:pointer;transition:all .1s ease}.server-menu-channel.active{background:var(--accent);color:#fff}.server-menu-channel .channel-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-backdrop{position:fixed;inset:0;background:#00000080;z-index:calc(var(--z-sidebar) - 1)}@media(max-width:480px){.server-menu-panel{left:8px;right:8px;width:auto;max-height:70vh}}.sidebar-main-tabs{display:flex;padding:8px;gap:6px;border-bottom:1px solid var(--border-color)}.sidebar-main-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.sidebar-main-tab:hover{background:var(--hover-bg);color:var(--text-primary)}.sidebar-main-tab.active{background:var(--accent);color:var(--accent-text)}.tab-badge{padding:2px 6px;background:#fff3;border-radius:var(--radius-full);font-size:11px;font-weight:600}.sidebar-main-tab.active .tab-badge{background:#ffffff4d}.tab-badge.pending{background:#f23f43;color:#fff}.sidebar-sub-tabs{display:flex;padding:8px;gap:4px;border-bottom:1px solid var(--border-color);overflow-x:auto}.sidebar-sub-tab{padding:6px 12px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease}.sidebar-sub-tab:hover{color:var(--text-primary);background:var(--hover-bg)}.sidebar-sub-tab.active{color:var(--text-primary);background:var(--bg-tertiary)}.sidebar-content{flex:1;overflow-y:auto;padding:8px}.sidebar-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-tertiary);text-align:center}.sidebar-empty-small{padding:20px;text-align:center;color:var(--text-tertiary);font-size:13px}.sidebar-loading{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px;color:var(--text-tertiary)}.btn-sm{padding:8px 16px;font-size:13px}.sidebar-servers-list{display:flex;flex-direction:column;gap:4px}.sidebar-server-members{font-size:11px;color:var(--text-tertiary);display:block}.channel-category{margin-bottom:2px}.category-header{display:flex;align-items:center;gap:2px;padding:6px 4px;width:100%;background:none;border:none;color:var(--text-tertiary);font-size:11px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:color .1s ease}.category-header:hover{color:var(--text-secondary)}.category-arrow{display:flex;align-items:center;justify-content:center;width:12px;height:12px}.category-name{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-channels{overflow:hidden}.sidebar-channel-item{display:flex;align-items:center;gap:6px;padding:6px 8px;margin-left:4px;width:calc(100% - 4px);background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;text-align:left;cursor:pointer;transition:all .1s ease}.sidebar-channel-item:hover{background:var(--hover-bg);color:var(--text-primary)}.sidebar-channel-item.active{background:var(--accent);color:var(--accent-text)}.sidebar-channel-item svg{flex-shrink:0;opacity:.7}.sidebar-channel-item.active svg{opacity:1}.leave-confirm-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:20px}.leave-confirm-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;max-width:320px;width:100%}.leave-confirm-modal h3{margin:0 0 12px;font-size:16px;color:var(--text-primary)}.leave-confirm-modal p{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.5}.leave-confirm-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.sidebar-friends-list{display:flex;flex-direction:column;gap:2px}.sidebar-friend-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer}.sidebar-friend-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.sidebar-friend-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar-friend-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-friend-activity,.sidebar-friend-status{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-dm-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer}.sidebar-dm-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.sidebar-dm-group-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.sidebar-dm-name{flex:1;font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-pending-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md)}.sidebar-pending-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.sidebar-pending-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar-pending-name{font-size:14px;font-weight:500;color:var(--text-primary)}.sidebar-pending-type{font-size:12px;color:var(--text-tertiary)}.sidebar-pending-actions{display:flex;gap:6px}.sidebar-pending-actions .accept-btn,.sidebar-pending-actions .decline-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;cursor:pointer;transition:all .15s ease}.sidebar-pending-actions .accept-btn{color:#23a55a}.sidebar-pending-actions .accept-btn:hover{background:#23a55a33}.sidebar-pending-actions .decline-btn{color:#f23f43}.sidebar-pending-actions .decline-btn:hover{background:#f23f4333}.server-group{margin-bottom:4px}.server-header{width:100%;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-md);font-size:14px;font-weight:600;color:var(--text-primary);text-align:left;transition:background var(--transition-fast)}.server-icon{color:var(--text-tertiary);transition:transform var(--transition-fast)}.server-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-list{overflow:hidden}.channel-loading,.channel-empty{padding:8px 12px 8px 44px;font-size:13px;color:var(--text-tertiary);display:flex;align-items:center;gap:8px}.channel-item{position:relative;width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 44px;border-radius:var(--radius-md);font-size:14px;color:var(--text-secondary);text-align:left;transition:all var(--transition-fast)}.channel-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-item:hover{color:var(--text-primary)}.channel-item.active{background:var(--accent);color:var(--accent-text)}.channel-item svg{flex-shrink:0;opacity:.6}.channel-item.active svg{opacity:1}.chat-area{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-primary)}.message-list{flex:1;overflow-y:auto;overflow-anchor:none;padding:8px 4px;display:flex;flex-direction:column;gap:2px;position:relative;contain:layout style;will-change:scroll-position}.message-list.empty{align-items:center;justify-content:center}.empty-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;text-align:center;color:var(--text-tertiary)}.empty-state svg{opacity:.5}.empty-state h3{font-size:18px;font-weight:600;color:var(--text-primary)}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;font-size:13px;color:var(--text-tertiary)}.message-group{display:flex;gap:10px;padding:6px 8px;contain:content}.message-avatar{flex-shrink:0;width:40px;height:40px;min-width:40px;min-height:40px}.message-avatar img{width:40px;height:40px;min-width:40px;min-height:40px;object-fit:cover;border-radius:var(--avatar-radius);cursor:pointer}.message-content-wrapper{flex:1;min-width:0;max-width:100%}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.message-author{font-weight:600;font-size:14px;cursor:pointer}.message-time{font-size:12px;color:var(--text-tertiary)}.message{position:relative;padding:4px 0}.message-body{display:inline-block;max-width:100%}.message-text{font-size:15px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;-webkit-user-select:text;user-select:text}.message-text strong{font-weight:700}.message-text em{font-style:italic}.message-text u{text-decoration:underline}.message-text del{text-decoration:line-through;opacity:.7}.message-text .md-inline-code{padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em}.message-text .md-code-block{margin:8px 0;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md);overflow-x:auto}.message-text .md-code-block code{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.4;white-space:pre;display:block}.message-text .md-blockquote{margin:4px 0;padding:4px 12px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.message-text .md-blockquote.multi{white-space:pre-wrap}.message-text .md-header{font-weight:700;margin:8px 0 4px;line-height:1.3}.message-text h2.md-header{font-size:1.5em}.message-text h3.md-header{font-size:1.25em}.message-text h4.md-header{font-size:1.1em}.message-text .md-list{margin:4px 0;padding-left:24px;list-style-type:disc}.message-text .md-list-item{margin:2px 0}.message-text .md-list-item.ordered{list-style-type:decimal}.message-text .spoiler{background:var(--text-primary);color:transparent;border-radius:4px;padding:0 4px;cursor:pointer;transition:all .2s}.message-text .spoiler.revealed{background:var(--bg-tertiary);color:var(--text-primary)}.edited-badge{font-size:11px;color:var(--text-tertiary);margin-left:4px}.message-reply-indicator{display:flex;align-items:center;gap:6px;padding:4px 8px;margin-bottom:4px;font-size:12px;color:var(--text-tertiary);border-left:2px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;transition:background .1s ease}.message-reply-indicator.clickable{cursor:pointer}.message-reply-indicator.clickable:hover{background:var(--hover-bg);color:var(--text-secondary)}.message-reply-indicator .reply-author{font-weight:500;color:var(--text-secondary)}.reply-preview{opacity:.7;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-edit{display:flex;flex-direction:column;gap:8px}.message-edit textarea{width:100%;min-height:60px;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);resize:vertical}.message-edit textarea:focus{border-color:var(--accent)}.edit-actions{display:flex;gap:8px}.edit-actions button{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:13px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.attachment{margin-top:8px}.attachment-image{max-width:100%;width:auto;max-height:400px;border-radius:var(--radius-md);cursor:zoom-in;display:block}.attachment-image.embedded{max-width:100%}.inline-emoji{width:1.375em;height:1.375em;vertical-align:-.3em;object-fit:contain;margin:0 1px}.message-text:has(.inline-emoji:only-child) .inline-emoji,.message-text .inline-emoji:only-child{width:3em;height:3em}.attachment-video{position:relative;display:inline-block;max-width:100%}.attachment-video video{max-width:100%;max-height:400px;border-radius:var(--radius-md)}.video-expand{position:absolute;top:8px;right:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#0009;color:#fff;border-radius:var(--radius-sm);opacity:0;transition:opacity var(--transition-fast)}.attachment-video:hover .video-expand{opacity:1}.attachment-file{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:14px;font-weight:500;text-decoration:underline}.reaction{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:14px;transition:all var(--transition-fast)}.reaction:hover{background:var(--hover-bg)}.reaction.active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent)}.reaction-emoji img{width:16px;height:16px;object-fit:contain}.reaction-emoji-img{width:16px!important;height:16px!important;max-width:16px!important;max-height:16px!important;object-fit:contain;vertical-align:middle}.reaction-count{font-size:12px;font-weight:500;color:var(--text-secondary)}.message-actions{display:none}.message-menu-btn{position:absolute;top:4px;right:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--transition-fast);z-index:10}.message-menu-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.message.selected{background:var(--hover-bg);border-radius:var(--radius-md);margin:0 -8px;padding:4px 8px}.message-input-container{position:relative;padding:12px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.files-preview{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;margin-bottom:10px;background:var(--bg-tertiary);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.file-preview-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm);min-width:150px;max-width:250px}.file-preview-item img{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.file-preview-item .file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:var(--radius-sm);color:var(--text-secondary);flex-shrink:0}.file-preview-item .file-name{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.file-preview-item .file-size{font-size:10px;color:var(--text-tertiary);flex-shrink:0}.file-preview-item .file-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.file-preview-item .file-remove:hover{background:var(--hover-bg);color:var(--danger)}.file-preview{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:10px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.file-preview img{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm)}.file-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:var(--radius-sm);color:var(--text-secondary)}.file-name{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.file-remove:hover{background:var(--hover-bg);color:var(--text-primary)}.input-form{display:flex;align-items:stretch;gap:8px}.input-wrapper{flex:1;min-width:0;order:-1;display:flex}.input-wrapper textarea{width:100%;height:76px;min-height:76px;max-height:150px;padding:0 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);resize:none;transition:all var(--transition-fast);display:flex;align-items:center;line-height:76px}.input-wrapper textarea:not(:placeholder-shown){padding:12px 16px;line-height:1.5;align-items:flex-start}.input-wrapper textarea:focus{border-color:var(--accent);padding:12px 16px;line-height:1.5}.input-wrapper textarea::placeholder{color:var(--text-tertiary);line-height:76px}.input-wrapper textarea:disabled{opacity:.5;cursor:not-allowed}.input-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;flex-shrink:0}.input-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.input-btn:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary)}.input-btn:disabled{opacity:.4;cursor:not-allowed}.input-btn.active{background:var(--accent);color:var(--accent-text)}.send-btn{width:44px;height:76px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-shrink:0}.mention-suggestions{position:absolute;bottom:100%;left:16px;right:16px;max-height:320px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-bottom:8px;z-index:var(--z-dropdown)}.mention-header{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.mention-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:14px;text-align:left;transition:background var(--transition-fast);cursor:pointer}.mention-item.selected{background:var(--accent);color:#fff}.mention-item.selected .mention-username{color:#ffffffb3}.mention-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.mention-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);flex-shrink:0}.mention-info{display:flex;flex-direction:column;min-width:0}.mention-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-username{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-hint{display:flex;justify-content:center;gap:16px;padding:8px;font-size:11px;color:var(--text-tertiary);border-top:1px solid var(--border-color);background:var(--bg-secondary)}.emoji-picker{position:absolute;bottom:100%;right:16px;width:340px;max-height:420px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-bottom:8px;overflow:hidden;display:flex;flex-direction:column}.emoji-tabs{display:flex;border-bottom:1px solid var(--border-color);flex-shrink:0}.emoji-tab{flex:1;padding:12px;font-size:13px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.emoji-tab:hover{background:var(--hover-bg)}.emoji-tab.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.emoji-category-nav{display:flex;gap:2px;padding:8px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;overflow-x:auto}.emoji-category-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.emoji-category-btn:hover{background:var(--hover-bg)}.emoji-category-btn.active{background:var(--accent);filter:brightness(1.1)}.emoji-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.emoji-section{padding:8px 12px}.emoji-section-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:6px;position:sticky;top:0;background:var(--bg-elevated);padding:4px 0;z-index:1}.emoji-grid-section{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:12px;max-height:320px;overflow-y:auto}.emoji-item{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:22px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.emoji-item:hover{background:var(--hover-bg)}.emoji-item img{width:24px;height:24px}.status-bar{height:var(--status-height);display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:12px}.status-left{display:flex;align-items:center;gap:8px}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);transition:background .3s ease}.status-indicator.online{background:#22c55e}.status-text{color:var(--text-secondary);transition:color .2s ease}.status-right{color:var(--text-tertiary)}.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#0009;z-index:var(--z-modal)}.settings-modal{width:100%;max-width:480px;min-height:400px;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;color:var(--text-primary)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary)}.settings-header h2{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--text-primary)}.settings-content{flex:1;overflow-y:auto;padding:8px 0;min-height:200px;color:var(--text-primary)}.settings-section{padding:16px 24px;color:var(--text-primary)}.settings-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0}.setting-info{display:flex;align-items:center;gap:10px;font-size:15px}.setting-info svg{color:var(--text-secondary)}.setting-hint{display:block;font-size:13px;color:var(--text-tertiary);margin-top:8px}.setting-error{font-size:13px;color:#ef4444;margin-top:8px}.toggle{position:relative;display:inline-block;width:44px;height:24px}.toggle-slider{position:absolute;inset:0;background:var(--bg-tertiary);border-radius:var(--radius-full);transition:all var(--transition-fast);cursor:pointer}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:var(--text-tertiary);border-radius:50%;transition:all var(--transition-fast)}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{background:var(--accent-text);transform:translate(20px)}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{background:var(--hover-bg)}.theme-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.theme-icon{font-size:24px}.theme-name{font-size:12px;font-weight:500;color:var(--text-secondary)}.bubble-color-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.bubble-color-option{width:40px;height:40px;border-radius:var(--radius-full);border:3px solid transparent;padding:3px;cursor:pointer;transition:all var(--transition-fast);background:var(--bg-tertiary)}.bubble-color-swatch.default-swatch{background:linear-gradient(135deg,#007aff,#af52de,#ff2d55);color:#fff}.custom-color-row{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.custom-color-row label{font-size:14px;color:var(--text-secondary)}.color-picker-input{width:50px;height:36px;padding:2px;border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;background:var(--bg-tertiary)}.color-picker-input::-webkit-color-swatch-wrapper{padding:2px}.color-picker-input::-webkit-color-swatch{border-radius:var(--radius-sm);border:none}.reset-color-btn{padding:8px 16px;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary);transition:all var(--transition-fast)}.reset-color-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.setting-description{font-size:13px;color:var(--text-tertiary);margin-top:4px}.permission-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.permission-btn:not(:disabled):hover{background:var(--hover-bg)}.permission-btn:disabled{cursor:default}.permission-btn.granted{color:#22c55e}.permission-btn.denied{color:#ef4444}.nickname-input{display:flex;gap:8px;margin-top:12px}.nickname-input input{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px}.nickname-input input:focus{border-color:var(--accent)}.nickname-input button{padding:10px 18px;background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.nickname-input button:hover:not(:disabled){background:var(--accent-hover)}.logout-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;background:#ef44441a;color:#ef4444;font-size:15px;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.logout-btn:hover{background:#ef444433}.ntfy-config{transition:opacity var(--transition-fast)}.setting-input-group{margin-top:12px}.setting-input-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.setting-input-group input{width:100%;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary)}.setting-input-group input:focus{border-color:var(--accent);outline:none}.setting-input-group input::placeholder{color:var(--text-tertiary)}.test-ntfy-btn{transition:all var(--transition-fast)}.test-ntfy-btn:disabled{opacity:.6}.share-dialog-overlay{z-index:var(--z-modal)}.share-dialog{width:90%;max-width:420px;max-height:80vh;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}.share-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.share-dialog-header h2{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;margin:0}.share-preview{padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.share-preview-file{display:flex;align-items:center;gap:12px;margin-bottom:8px}.share-preview-file img,.share-preview-file video{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-md)}.share-preview-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);color:var(--text-secondary)}.share-preview-filename{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.share-preview-text{font-size:13px;color:var(--text-primary);line-height:1.5;word-break:break-word}.share-dialog-content{flex:1;overflow-y:auto;padding:16px 20px}.share-dialog-content h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.share-back-btn{display:flex;align-items:center;gap:6px;padding:8px 0;margin-bottom:12px;background:none;border:none;color:var(--accent);font-size:14px;cursor:pointer}.share-back-btn:hover{text-decoration:underline}.share-server-list,.share-channel-list{display:flex;flex-direction:column;gap:6px}.share-server-item,.share-channel-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.share-server-item:hover,.share-channel-item:hover{background:var(--hover-bg);border-color:var(--accent)}.share-server-item:disabled,.share-channel-item:disabled{opacity:.6;cursor:not-allowed}.share-server-icon{width:40px;height:40px;border-radius:var(--radius-full);object-fit:cover}.share-server-icon.placeholder{display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:18px;font-weight:600}.share-server-name,.share-channel-name{flex:1;font-size:15px;font-weight:500;text-align:left}.share-channel-item svg:first-child{color:var(--text-tertiary)}.share-channel-item svg:last-child{color:var(--accent)}.share-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px;color:var(--text-secondary)}.share-loading svg{animation:spin 1s linear infinite}.share-empty{text-align:center;padding:40px;color:var(--text-tertiary);font-size:14px}.settings-footer{padding:16px 24px;text-align:center;border-top:1px solid var(--border-color);font-size:12px;color:var(--text-tertiary)}.lightbox-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#000000e6;z-index:var(--z-lightbox);cursor:zoom-out}.lightbox-close{position:absolute;top:20px;right:20px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;color:#fff;border-radius:50%;transition:background var(--transition-fast)}.lightbox-close:hover{background:#fff3}.lightbox-content{max-width:95vw;max-height:90vh;cursor:default}.lightbox-content img,.lightbox-content video{max-width:100%;max-height:90vh;border-radius:var(--radius-md);box-shadow:0 8px 32px #00000080}.context-menu-overlay{position:fixed;inset:0;z-index:var(--z-context)}.context-menu{position:fixed;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.context-menu.expanded{width:300px}.context-reactions{display:flex;gap:4px;padding:10px;border-bottom:1px solid var(--border-color)}.context-emoji{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.context-emoji:hover{background:var(--hover-bg)}.context-emoji img{width:22px;height:22px;object-fit:contain}.context-emoji.more-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.context-emoji.more-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.context-divider{height:1px;background:var(--border-color)}.context-actions{padding:6px}.context-action{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;border-radius:var(--radius-md);text-align:left;transition:background var(--transition-fast)}.context-action:hover{background:var(--hover-bg)}.context-action.delete{color:#ef4444}.context-action .action-arrow{margin-left:auto;color:var(--text-tertiary)}.context-emoji-picker{display:flex;flex-direction:column;max-height:380px}.context-emoji-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-color)}.context-emoji-header .back-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;font-size:13px;font-weight:500;color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.context-emoji-header .back-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.context-emoji-header .header-title{font-size:14px;font-weight:600;color:var(--text-primary)}.context-emoji-tabs{display:flex;border-bottom:1px solid var(--border-color)}.context-emoji-tabs .tab{flex:1;padding:10px;font-size:13px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.context-emoji-tabs .tab:hover{background:var(--hover-bg)}.context-emoji-tabs .tab.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.context-emoji-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px;overflow-y:auto;max-height:260px}.context-emoji-grid .grid-emoji{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:22px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.context-emoji-grid .grid-emoji:hover{background:var(--hover-bg)}.context-emoji-grid .grid-emoji img{width:24px;height:24px;object-fit:contain}.confirm-dialog{width:100%;max-width:360px;padding:32px;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center}.confirm-icon{width:56px;height:56px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:#ef44441a;color:#ef4444;border-radius:50%}.confirm-dialog h3{font-size:18px;font-weight:600;margin-bottom:8px}.confirm-dialog p{font-size:14px;color:var(--text-secondary);margin-bottom:24px}.confirm-actions{display:flex;gap:12px}.confirm-btn{flex:1;padding:12px 20px;font-size:15px;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.confirm-btn.cancel{background:var(--bg-tertiary)}.confirm-btn.cancel:hover{background:var(--hover-bg)}.confirm-btn.confirm{background:#ef4444;color:#fff}.confirm-btn.confirm:hover{background:#dc2626}.header-actions{display:flex;align-items:center;gap:4px}.header-actions .icon-btn{width:36px;height:36px}.header-actions .icon-btn.bot-menu-btn{width:auto;height:auto;padding:2px}.panel-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;justify-content:flex-end}.panel{width:360px;max-width:90vw;height:100%;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.panel-header h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.panel-header-actions{display:flex;align-items:center;gap:4px}.icon-btn-sm{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.icon-btn-sm:hover{background:var(--hover-bg);color:var(--text-primary)}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.close-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.panel-content{flex:1;overflow-y:auto;padding:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--text-tertiary);text-align:center}.empty-state-hint{font-size:12px;color:var(--text-tertiary);opacity:.7;max-width:200px}.search-form{display:flex;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border-color)}.search-input-wrapper{flex:1;position:relative;display:flex;align-items:center}.search-input-wrapper .search-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none}.search-input-wrapper input{flex:1;padding:10px 14px 10px 40px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary)}.search-input-wrapper input:focus{border-color:var(--accent);outline:none}.search-input-wrapper .clear-btn{position:absolute;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-full);color:var(--text-secondary)}.search-form .filter-toggle{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.search-form .filter-toggle:hover,.search-form .filter-toggle.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.search-form button[type=submit]{padding:0 16px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md);font-weight:500}.search-form button:disabled{opacity:.5}.search-filters{padding:12px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);display:grid;grid-template-columns:repeat(2,1fr);gap:12px;overflow:hidden}.filter-row{display:flex;flex-direction:column;gap:4px}.filter-row label{font-size:11px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase}.filter-row input,.filter-row select{padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary)}.filter-row input:focus,.filter-row select:focus{border-color:var(--accent);outline:none}.search-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:16px}.search-info .search-query{color:var(--text-tertiary)}.search-results{display:flex;flex-direction:column;gap:8px}.search-result{display:flex;gap:12px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.search-highlight{background:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent);padding:0 2px;border-radius:2px}.result-arrow{color:var(--text-tertiary);opacity:0;transition:opacity var(--transition-fast)}.search-result:hover .result-arrow{opacity:1}.result-attachments{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-tertiary);margin-top:4px}.search-empty{padding:20px 0}.recent-searches{margin-bottom:24px}.recent-searches h4,.search-tips h4{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:12px}.recent-search-item{display:flex;align-items:center;gap:8px}.recent-search-btn{flex:1;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary);text-align:left;transition:background var(--transition-fast)}.recent-search-btn:hover{background:var(--hover-bg)}.remove-recent{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm)}.remove-recent:hover{background:var(--bg-tertiary);color:var(--text-primary)}.search-tips ul{list-style:none;padding:0;margin:0}.search-tips li{padding:6px 0;font-size:13px;color:var(--text-secondary)}.search-tips code{font-family:var(--font-mono);font-size:12px;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);color:var(--accent)}.search-loading{display:flex;flex-direction:column}.pinned-message{display:flex;gap:12px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md)}.result-avatar,.pinned-avatar{width:36px;height:36px;border-radius:var(--avatar-radius);flex-shrink:0}.result-content,.pinned-content{flex:1;min-width:0}.result-header,.pinned-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.result-author,.pinned-author{font-weight:600;font-size:14px}.result-time,.pinned-time{font-size:12px;color:var(--text-tertiary)}.result-text,.pinned-text{font-size:14px;color:var(--text-secondary);word-break:break-word}.pinned-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pinned-attachment{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary)}.members-list{display:flex;flex-direction:column;gap:4px}.member-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.member-avatar{width:36px;height:36px;border-radius:var(--avatar-radius);flex-shrink:0}.member-info{display:flex;flex-direction:column;min-width:0}.member-name{font-weight:500;font-size:14px}.member-username{font-size:12px;color:var(--text-tertiary)}.user-profile-modal{position:relative;width:340px;max-width:90vw;background:var(--bg-primary);border-radius:var(--radius-lg);overflow:hidden;margin:auto}.profile-banner{height:100px;position:relative}.profile-banner-img{width:100%;height:100%;object-fit:cover}.profile-avatar-container{position:relative;margin-top:-40px;margin-left:20px}.profile-avatar{width:80px;height:80px;border-radius:50%;border:4px solid var(--bg-primary)}.profile-info{padding:12px 20px 0}.profile-display-name{font-size:20px;font-weight:700}.profile-username{font-size:14px;color:var(--text-secondary);margin-top:2px}.profile-nickname{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-tertiary);margin-top:8px}.profile-details{padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px}.profile-detail{display:flex;align-items:flex-start;gap:12px;color:var(--text-secondary)}.profile-detail>div{display:flex;flex-direction:column}.detail-label{font-size:11px;text-transform:uppercase;font-weight:600;color:var(--text-tertiary)}.detail-value{font-size:14px;color:var(--text-primary)}.profile-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;border-radius:var(--radius-md)}.gif-panel{width:400px}.gif-search-form{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.gif-search-form input{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px}.gif-search-form button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md)}.gif-grid{display:flex;flex-wrap:wrap;gap:8px;padding:12px 12px 70px;max-height:calc(100vh - 180px);overflow-y:auto;overflow-x:hidden;align-content:flex-start}.gif-item-wrapper{position:relative;width:calc(50% - 4px);flex-shrink:0}.gif-item{position:relative;cursor:pointer;border-radius:var(--radius-md);overflow:visible}.gif-item img{width:100%;height:auto;border-radius:var(--radius-md);display:block}.gif-item.selected{box-shadow:0 8px 24px #0006}.gif-item-actions{position:absolute;top:100%;left:0;right:0;display:flex;justify-content:center;gap:16px;padding:10px;background:var(--bg-tertiary);border-radius:0 0 var(--radius-md) var(--radius-md)}.gif-loading,.gif-empty{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--text-tertiary)}.gif-loading-more{width:100%;display:flex;justify-content:center;padding:16px;color:var(--text-tertiary)}.gif-footer{padding:8px 16px;border-top:1px solid var(--border-color);font-size:11px;color:var(--text-tertiary);text-align:center}.gif-action-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.gif-action-add{background:#3ba55c;color:#fff}.gif-action-add:hover{background:#2d8049}.gif-action-dismiss{background:var(--bg-secondary);color:var(--text-secondary)}.gif-action-dismiss:hover{background:var(--hover-bg);color:var(--text-primary)}.gallery-panel{width:550px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column}.gallery-filters{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.gallery-filter{padding:6px 12px;font-size:12px;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.gallery-filter:hover{background:var(--hover-bg);color:var(--text-primary)}.gallery-filter.active{background:var(--accent);color:#fff}.gallery-content{flex:1;overflow-y:auto;padding:16px;min-height:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gallery-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;background:var(--bg-tertiary)}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover}.gallery-item.video .video-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;background:#000000b3;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none}.gallery-item-info{position:absolute;bottom:0;left:0;right:0;padding:8px;background:linear-gradient(transparent,#000c);color:#fff;font-size:11px;opacity:0;transition:opacity var(--transition-fast)}.gallery-item:hover .gallery-item-info{opacity:1}.gallery-author{font-weight:500}.gallery-date{opacity:.7;margin-left:8px}.gallery-loading-more{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text-tertiary)}.gallery-load-more{display:flex;justify-content:center;padding:16px}.gallery-load-more button,.load-more-btn{padding:8px 16px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-md);font-size:13px;transition:all var(--transition-fast)}.gallery-load-more button:hover,.load-more-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.gallery-end{text-align:center;padding:16px;color:var(--text-tertiary);font-size:13px}.reply-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border-left:3px solid var(--accent);margin:0 16px;border-radius:0 var(--radius-md) var(--radius-md) 0}.reply-bar svg{color:var(--accent);flex-shrink:0}.reply-text{font-size:13px;color:var(--text-secondary)}.reply-text strong{color:var(--text-primary)}.reply-bar .reply-preview{flex:1;font-size:13px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-cancel{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm);flex-shrink:0}.reply-cancel:hover{background:var(--hover-bg);color:var(--text-primary)}.markdown-preview{display:flex;align-items:flex-start;gap:8px;padding:10px 16px;margin:0 16px;background:var(--bg-secondary);border-radius:var(--radius-md);font-size:14px;overflow:hidden}.preview-label{font-size:11px;text-transform:uppercase;font-weight:600;color:var(--text-tertiary);flex-shrink:0}.markdown-preview code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px}.markdown-preview del{text-decoration:line-through;opacity:.7}.channel-item.unread .channel-name{font-weight:700;color:var(--text-primary)}.channel-item.unread:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:8px;background:var(--accent);border-radius:0 4px 4px 0}.link-preview{display:flex;gap:12px;padding:12px;margin-top:8px;background:var(--bg-secondary);border-left:4px solid var(--accent);border-radius:var(--radius-md);max-width:400px}.link-preview-image{width:80px;height:80px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.link-preview-content{flex:1;min-width:0}.link-preview-site{font-size:11px;color:var(--accent);text-transform:uppercase;font-weight:600}.link-preview-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-top:2px}.link-preview-description{font-size:13px;color:var(--text-secondary);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.message.highlighted{animation:highlightPulse 2s ease-out}@keyframes highlightPulse{0%{background:var(--accent);box-shadow:0 0 0 4px var(--accent)}to{background:transparent;box-shadow:none}}.search-result.clickable{cursor:pointer;transition:background var(--transition-fast)}.search-result.clickable:hover{background:var(--hover-bg)}.result-note{font-size:11px;color:var(--text-tertiary);font-style:italic;margin-top:4px}.fallback-link{font-size:13px;word-break:break-all}.compact-mode{--header-height: 44px;--input-height: 44px}.compact-mode .header{padding:8px 12px}.compact-mode .header-title{font-size:15px}.compact-mode .message-group{padding:2px 12px;gap:2px}.compact-mode .message-avatar{width:24px;height:24px;margin-right:8px}.compact-mode .message-content-wrapper{gap:0}.compact-mode .message-header{display:inline;margin-bottom:0;margin-right:8px}.compact-mode .message-author{font-size:13px;display:inline}.compact-mode .message-time{font-size:10px;display:inline;margin-left:4px}.compact-mode .message{padding:1px 0}.compact-mode .message-body{display:inline}.compact-mode .message-text{font-size:14px;line-height:1.3;display:inline}.compact-mode .message-input-container{padding:8px 12px}.compact-mode .message-input textarea{font-size:14px;padding:8px 12px;min-height:36px}.compact-mode .channel-item{padding:4px 8px;min-height:28px}.compact-mode .channel-item .channel-icon{width:16px;height:16px}.compact-mode .channel-item .channel-name{font-size:13px}.compact-mode .server-item{width:40px;height:40px}.compact-mode .server-item img{width:36px;height:36px}.compact-mode .message-reactions{gap:4px;margin-top:2px}.compact-mode .reaction{padding:2px 6px;font-size:12px}.compact-mode .attachment-image{max-width:250px;max-height:200px}.compact-mode .embed{max-width:350px;padding:8px}.compact-mode .embed-title{font-size:14px}.compact-mode .embed-description{font-size:13px}.toast-container{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:400px;width:calc(100% - 32px)}.toast{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-lg);cursor:pointer;pointer-events:auto;max-width:100%;box-sizing:border-box}.toast:hover{background:var(--hover-bg)}.toast-avatar{width:36px;height:36px;border-radius:var(--radius-full);object-fit:cover}.toast-content{flex:1;min-width:0}.toast-title{font-weight:600;font-size:14px;color:var(--text-primary)}.toast-message{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.toast-close:hover{background:var(--hover-bg);color:var(--text-primary)}.markdown-toolbar{display:flex;gap:4px;padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.md-tool-btn{width:32px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;cursor:pointer;transition:var(--transition-fast)}.md-tool-btn:hover{background:var(--hover-bg);color:var(--text-primary);border-color:var(--text-tertiary)}.message-input-container.dragging{position:relative}.drag-overlay{position:absolute;inset:0;background:color-mix(in srgb,var(--accent) 10%,transparent);border:2px dashed var(--accent);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--accent);font-weight:600;z-index:10}.channel-unread-badge{background:var(--accent);color:var(--accent-text);font-size:11px;font-weight:600;padding:2px 6px;border-radius:var(--radius-full);margin-left:auto}.channel-item.has-unread .channel-name{font-weight:600;color:var(--text-primary)}.server-unread-dot{width:8px;height:8px;background:var(--accent);border-radius:var(--radius-full);margin-left:auto}.channel-context-menu{position:fixed;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000004d;min-width:160px;z-index:1000;overflow:hidden}.channel-context-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text-primary);font-size:14px;cursor:pointer;transition:background .15s}.channel-context-item:hover{background:var(--hover-bg)}.channel-context-item svg{color:var(--text-secondary)}.typing-indicator-bar{display:flex;align-items:center;gap:6px;padding:4px 16px;background:var(--bg-primary);border-top:1px solid var(--border-color);overflow:hidden}.typing-indicator-bar .typing-bubble-dots{display:flex;align-items:center;gap:3px}.typing-indicator-bar .typing-bubble-dots span{width:5px;height:5px;background:var(--text-tertiary);border-radius:50%;animation:typingDotBounce 1.4s infinite ease-in-out}.typing-indicator-bar .typing-bubble-dots span:nth-child(1){animation-delay:0s}.typing-indicator-bar .typing-bubble-dots span:nth-child(2){animation-delay:.2s}.typing-indicator-bar .typing-bubble-dots span:nth-child(3){animation-delay:.4s}.typing-indicator-bar .typing-bubble-text{font-size:11px;color:var(--text-secondary);font-weight:500}.back-to-latest-wrapper{position:sticky;bottom:8px;display:flex;justify-content:center;margin-top:auto;z-index:10}.back-to-latest-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-full);font-size:12px;font-weight:500;cursor:pointer;box-shadow:var(--shadow-md)}.back-to-latest-btn:hover{background:var(--accent-hover)}.back-to-latest-btn svg{flex-shrink:0}@keyframes typingDotBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}.typing-indicator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding-top:2px}.typing-dots{display:flex;gap:3px}.typing-dots span{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-dots span:nth-child(1){animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}.typing-dots span:nth-child(3){animation-delay:0s}@keyframes typingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.typing-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.input-wrapper textarea.has-typing::placeholder{color:var(--accent);animation:typingPulse 1.5s infinite ease-in-out}@keyframes typingPulse{0%,to{opacity:.6}50%{opacity:1}}.status-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.status-option{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:14px;color:var(--text-primary);transition:var(--transition-fast)}.status-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.status-dot{width:10px;height:10px;border-radius:50%}.custom-status-input{display:flex;gap:8px}.custom-status-input input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px 12px;color:var(--text-primary);font-size:14px}.custom-status-input button{padding:10px 16px;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer}.screen-capture-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:90%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.screen-capture-content{padding:24px;flex:1;overflow:auto}.capture-start{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px;color:var(--text-secondary)}.capture-start .primary-btn{margin-top:16px}.capture-preview{display:flex;flex-direction:column;gap:16px}.capture-video{width:100%;max-height:400px;object-fit:contain;background:#000;border-radius:var(--radius-md)}.capture-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.capture-option{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary);cursor:pointer}.capture-result{display:flex;flex-direction:column;gap:16px}.captured-image{width:100%;max-height:400px;object-fit:contain;border-radius:var(--radius-md)}.capture-actions{display:flex;gap:12px;justify-content:flex-end}.capture-error{display:flex;align-items:center;gap:8px;padding:12px;background:#f443361a;color:#f44336;border-radius:var(--radius-md);margin-bottom:16px}.primary-btn{padding:10px 20px;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px}.secondary-btn{padding:10px 20px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px}.attachment-video.enhanced{position:relative}.video-controls-overlay{position:absolute;top:8px;right:8px;display:flex;gap:8px;opacity:0;transition:opacity .2s}.attachment-video.enhanced:hover .video-controls-overlay{opacity:1}.video-download{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#0009;border-radius:var(--radius-sm);color:#fff;text-decoration:none}.video-download:hover{background:#000c}.video-filename{position:absolute;bottom:8px;left:8px;font-size:12px;color:#fff;background:#0009;padding:4px 8px;border-radius:var(--radius-sm);opacity:0;transition:opacity .2s}.attachment-video.enhanced:hover .video-filename{opacity:1}.attachment-audio{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md);max-width:400px}.audio-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md)}.audio-filename{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-info audio{width:100%;height:32px}.audio-download{color:var(--text-secondary);padding:8px;border-radius:var(--radius-sm)}.audio-download:hover{background:var(--hover-bg);color:var(--text-primary)}.thread-indicator{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);font-size:13px;color:var(--accent);cursor:pointer;transition:var(--transition-fast)}.thread-last-reply{color:var(--text-tertiary);margin-left:auto}.spoiler{background:var(--text-primary);color:transparent;border-radius:3px;padding:0 4px;cursor:pointer;transition:all .2s}.spoiler:hover,.spoiler.revealed{background:var(--bg-tertiary);color:var(--text-primary)}.screenshot-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:90%;max-width:550px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.screenshot-controls{padding:12px 16px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:16px;flex-wrap:wrap}.toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text-secondary)}.toggle-label input{display:none}.toggle-slider-small{width:36px;height:20px;background:var(--bg-tertiary);border-radius:10px;position:relative;transition:background .2s}.toggle-slider-small:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-tertiary);border-radius:50%;transition:transform .2s,background .2s}.toggle-label input:checked+.toggle-slider-small{background:var(--accent)}.toggle-label input:checked+.toggle-slider-small:after{transform:translate(16px);background:var(--accent-text)}.message-select-controls{display:flex;align-items:center;gap:8px;margin-left:auto}.select-label{font-size:13px;color:var(--text-tertiary)}.select-btn{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.select-btn:hover{background:var(--hover-bg)}.select-btn.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.message-group-selector{padding:8px 16px;border-bottom:1px solid var(--border-color);max-height:150px;overflow-y:auto}.selector-label{font-size:12px;color:var(--text-tertiary);margin-bottom:8px}.message-select-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:all .15s}.message-select-item:hover{background:var(--hover-bg)}.message-select-item.selected{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.select-checkbox{width:18px;height:18px;border:2px solid var(--border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-select-item.selected .select-checkbox{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.select-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.screenshot-preview-container{flex:1;overflow-y:auto;padding:16px;background:var(--bg-tertiary)}.screenshot-preview{background:var(--bg-secondary);border-radius:var(--radius-md);padding:12px}.screenshot-message-group{display:flex;flex-direction:column;gap:4px}.screenshot-author{display:flex;align-items:center;gap:10px;margin-bottom:4px}.screenshot-avatar{width:40px;height:40px;border-radius:var(--avatar-radius);object-fit:cover}.screenshot-username{font-weight:600;font-size:15px;color:var(--text-primary)}.screenshot-messages{display:flex;flex-direction:column;gap:4px}.screenshot-messages.with-indent{padding-left:50px}.screenshot-messages.no-indent{padding-left:0}.screenshot-content{font-size:14px;color:var(--text-primary);line-height:1.5;word-break:break-word}.screenshot-content .inline-emoji{width:20px;height:20px;vertical-align:middle}.screenshot-content .mention{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:0 4px;border-radius:3px}.screenshot-attachment{margin-top:8px}.screenshot-attachment img{max-width:100%;max-height:200px;border-radius:var(--radius-sm)}.screenshot-file{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px}.screenshot-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.screenshot-reaction{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:13px}.screenshot-reaction img{width:16px;height:16px}.screenshot-actions{padding:12px 16px;border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end}@media(max-width:640px){.emoji-picker{left:16px;width:calc(100% - 32px)}.emoji-grid{grid-template-columns:repeat(7,1fr)}.theme-grid{grid-template-columns:repeat(2,1fr)}.message-actions{display:none}.message-avatar{width:36px;height:36px}.attachment-image,.attachment-video video{max-width:100%}.status-options{grid-template-columns:1fr}.toast-container{top:calc(env(safe-area-inset-top,0px) + 8px);left:8px;right:8px;transform:none;width:auto;max-width:none}.toast{width:100%;box-sizing:border-box;max-width:100%}.toast-message{white-space:normal;word-break:break-word}.toast-content{max-width:calc(100% - 50px);overflow:hidden}.toast-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.screenshot-modal{width:95%;max-height:90vh}.input-form{gap:4px}.input-buttons-grid{gap:2px}.input-btn{width:32px;height:32px}.send-btn{width:40px;height:68px}.input-wrapper textarea{height:68px;min-height:68px;padding:0 12px;line-height:68px}.input-wrapper textarea:not(:placeholder-shown),.input-wrapper textarea:focus{padding:10px 12px;line-height:1.5}.input-wrapper textarea::placeholder{line-height:68px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.message-input-container{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.status-bar{padding-bottom:env(safe-area-inset-bottom);height:calc(var(--status-height) + env(safe-area-inset-bottom))}}.message-avatar{position:relative}.presence-dot{position:absolute;bottom:0;right:0;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-primary);background:#747f8d}.presence-dot.online{background:#23a55a}.presence-dot.idle{background:#f0b232}.presence-dot.dnd{background:#f23f43}.presence-dot.offline{background:#80848e}.latency-indicator{margin-left:8px;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;font-size:11px;color:var(--text-tertiary)}.font-size-slider{display:flex;align-items:center;gap:8px}.font-size-slider input[type=range]{flex:1;height:4px;background:var(--bg-tertiary);border-radius:2px;cursor:pointer;-webkit-appearance:none}.font-size-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer}.font-size-label{font-size:12px;color:var(--text-tertiary)}.font-size-label.large{font-size:18px}.font-size-value{font-size:12px;color:var(--text-secondary);min-width:35px}.reaction-wrapper{position:relative;display:inline-block}.reaction-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;min-width:100px;max-width:200px}.reaction-users{display:flex;flex-direction:column;gap:4px}.reaction-user{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reaction-more{font-size:12px;color:var(--text-tertiary);font-style:italic}.reaction-loading{font-size:12px;color:var(--text-tertiary)}.attachment.spoiler{position:relative;min-height:100px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.spoiler-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);font-size:14px}.spoiler-overlay svg{opacity:.7}.md-code-block{position:relative}.code-lang-label{position:absolute;top:8px;right:8px;padding:2px 8px;background:var(--bg-tertiary);border-radius:4px;font-size:11px;color:var(--text-tertiary);text-transform:uppercase}.code-keyword{color:#c678dd}.code-string{color:#98c379}.code-number{color:#d19a66}.code-comment{color:#5c6370;font-style:italic}.thread-view{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100%;background:var(--bg-primary);border-left:1px solid var(--border-color);z-index:100;display:flex;flex-direction:column}.thread-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.thread-title{font-weight:600;color:var(--text-primary)}.unread-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#f23f43;font-size:12px;font-weight:600}.message.highlight{animation:highlightPulse 2s ease-out}@keyframes highlightPulse{0%{background:var(--accent-transparent)}to{background:transparent}}.message-skeleton-container{display:flex;flex-direction:column;gap:20px;padding:16px}.message-skeleton{display:flex;gap:12px;animation:skeletonFade 1s ease-in-out infinite}.skeleton-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);flex-shrink:0}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton-header{display:flex;gap:8px;align-items:center}.skeleton-name{width:120px;height:14px;background:var(--bg-tertiary);border-radius:4px}.skeleton-time{width:50px;height:12px;background:var(--bg-tertiary);border-radius:4px}.skeleton-text{width:100%;max-width:300px;height:14px;background:var(--bg-tertiary);border-radius:4px}.skeleton-text.short{max-width:180px}@keyframes skeletonFade{0%,to{opacity:.4}50%{opacity:.7}}.video-embed{position:relative;width:100%;max-width:400px;border-radius:var(--radius-md);overflow:hidden;margin-top:8px;background:var(--bg-tertiary)}.video-embed.thumbnail{cursor:pointer;aspect-ratio:16 / 9}.video-embed.thumbnail img{width:100%;height:100%;object-fit:cover}.video-embed-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.video-embed-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0006;transition:background .2s ease}.video-embed.thumbnail:hover .video-embed-overlay{background:#00000080}.video-embed .play-button{width:64px;height:64px;border-radius:50%;background:#fffffff2;display:flex;align-items:center;justify-content:center;color:#333;transition:transform .2s ease,background .2s ease}.video-embed.thumbnail:hover .play-button{transform:scale(1.1);background:#fff}.video-embed-info{position:absolute;bottom:12px;left:12px}.platform-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.video-embed-link{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#0009;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .2s ease}.video-embed-link:hover{background:#000c}@media(max-width:480px){.video-embed{max-width:100%}.video-embed .play-button{width:56px;height:56px}.video-embed .play-button svg{width:24px;height:24px}}.friends-panel-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-modal);display:flex;align-items:stretch}.friends-panel{width:100%;max-width:420px;height:100%;background:var(--bg-secondary);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.friends-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.friends-panel-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.friends-header-actions{display:flex;gap:8px}.friends-tabs{display:flex;padding:0 12px;border-bottom:1px solid var(--border-color);overflow-x:auto}.friends-tab{padding:12px 16px;background:none;border:none;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;border-bottom:2px solid transparent;transition:all .2s ease;white-space:nowrap}.friends-tab:hover{color:var(--text-primary)}.friends-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{font-size:12px;padding:2px 6px;background:var(--bg-tertiary);border-radius:10px}.tab-count.badge{background:var(--accent);color:var(--accent-text)}.friends-list{flex:1;overflow-y:auto;padding:12px}.friends-loading,.friends-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:12px;color:var(--text-tertiary)}.friends-empty svg{opacity:.5}.friends-empty .btn-primary{margin-top:12px}.friends-section{margin-bottom:16px}.friends-section-header{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;padding:8px 12px;letter-spacing:.5px}.friend-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.friend-item:hover{background:var(--hover-bg)}.friend-avatar-wrapper{position:relative;flex-shrink:0}.friend-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.friend-status-dot{position:absolute;bottom:0;right:0;width:14px;height:14px;border-radius:50%;border:3px solid var(--bg-secondary)}.friend-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.friend-name{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-username{font-size:13px;color:var(--text-tertiary)}.friend-activity,.friend-status-text{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-pending-type,.friend-blocked-label{font-size:13px;color:var(--text-tertiary)}.friend-actions{display:flex;gap:4px}.friend-action-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.friend-action-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.friend-action-btn.danger:hover{background:#f33f431a;color:#f23f43}.friend-action-btn.accept:hover{background:#23a55a1a;color:#23a55a}.dm-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.dm-item:hover{background:var(--hover-bg)}.dm-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.dm-group-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.dm-group-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.dm-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dm-name{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-member-count{font-size:13px;color:var(--text-tertiary)}.dm-close-btn{width:28px;height:28px;border-radius:50%;border:none;background:var(--bg-tertiary);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center}.dm-close-btn:hover{background:#f33f431a;color:#f23f43}.modal-overlay{position:fixed;inset:0;background:#000000b3;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.modal-close{width:32px;height:32px;border-radius:50%;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--hover-bg);color:var(--text-primary)}.add-friend-form,.join-server-form{padding:20px;display:flex;flex-direction:column;gap:16px}.add-friend-hint,.join-server-hint{font-size:14px;color:var(--text-secondary);margin:0}.add-friend-form input,.join-server-form input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:15px}.add-friend-form input:focus,.join-server-form input:focus{outline:none;border-color:var(--accent)}.invite-input-row{display:flex;gap:8px}.invite-input-row input{flex:1}.form-error{padding:10px 14px;background:#f33f431a;border-radius:var(--radius-sm);color:#f23f43;font-size:14px}.form-success{padding:10px 14px;background:#23a55a1a;border-radius:var(--radius-sm);color:#23a55a;font-size:14px}.invite-preview{padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.invite-preview-header{display:flex;gap:12px;align-items:center}.invite-guild-icon{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover}.invite-guild-icon-placeholder{width:48px;height:48px;border-radius:var(--radius-md);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.invite-guild-info{flex:1;display:flex;flex-direction:column;gap:4px}.invite-guild-name{font-size:16px;font-weight:600;color:var(--text-primary)}.invite-guild-counts{display:flex;gap:12px;font-size:13px}.invite-guild-counts .online{color:#23a55a}.invite-guild-counts .members{color:var(--text-tertiary)}.invite-guild-desc{margin-top:12px;font-size:14px;color:var(--text-secondary)}.btn-primary{padding:12px 20px;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);font-size:15px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{padding:12px 20px;background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:var(--radius-md);font-size:15px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover:not(:disabled){background:var(--hover-bg)}.btn-sm{padding:8px 16px;font-size:14px}.btn-icon{width:36px;height:36px;border-radius:50%;border:none;background:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-icon:hover{background:var(--hover-bg);color:var(--text-primary)}.user-status-panel{position:fixed;top:calc(var(--header-height) + 8px);right:16px;width:300px;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:var(--z-dropdown);overflow:hidden}.status-panel-user{display:flex;gap:12px;padding:16px;background:var(--bg-tertiary)}.status-panel-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.status-panel-user-info{display:flex;flex-direction:column;justify-content:center;gap:2px}.status-panel-name{font-size:16px;font-weight:600;color:var(--text-primary)}.status-panel-username{font-size:14px;color:var(--text-secondary)}.status-panel-section{padding:12px;border-bottom:1px solid var(--border-color)}.status-panel-section:last-child{border-bottom:none}.status-panel-label{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:8px;letter-spacing:.5px}.status-custom-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:14px;text-align:left;transition:background .15s ease}.status-custom-btn:hover{background:var(--hover-bg)}.status-custom-emoji{font-size:20px}.status-custom-text{flex:1;color:var(--text-secondary)}.status-custom-clear{width:24px;height:24px;border-radius:50%;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center}.status-custom-clear:hover{background:var(--hover-bg);color:var(--text-primary)}.status-custom-input-wrapper{display:flex;flex-direction:column;gap:10px}.status-custom-input-row{display:flex;gap:8px}.status-emoji-picker-btn{width:42px;height:42px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;font-size:20px}.status-custom-input-row input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:14px}.status-custom-input-row input:focus{outline:none;border-color:var(--accent)}.status-custom-actions{display:flex;gap:8px;justify-content:flex-end}.status-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:14px;width:100%;text-align:left;transition:background .15s ease}.status-option.active{background:var(--active-bg)}.status-option-dot{width:12px;height:12px;border-radius:50%;position:relative}.status-dnd-line{position:absolute;top:50%;left:2px;right:2px;height:3px;background:var(--bg-secondary);transform:translateY(-50%);border-radius:2px}.status-idle-moon{position:absolute;top:0;right:0;width:6px;height:6px;background:var(--bg-secondary);border-radius:50%}.status-panel-actions{display:flex;flex-direction:column;gap:2px}.status-action-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:14px;width:100%;text-align:left;transition:background .15s ease}.status-action-btn:hover{background:var(--hover-bg)}.status-action-btn.danger{color:#f23f43}.status-action-btn.danger:hover{background:#f33f431a}.user-avatar-mini{position:relative;width:28px;height:28px}.user-avatar-mini img{width:100%;height:100%;border-radius:50%;object-fit:cover}.user-avatar-mini .user-status-dot{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-primary)}.user-status-btn{padding:2px!important}.friends-btn{position:relative}.user-token-badge{padding:2px 8px;background:var(--accent);color:var(--accent-text);border-radius:10px;font-size:11px;font-weight:600;margin-right:8px}@media(max-width:480px){.friends-panel{max-width:100%}.user-status-panel{right:8px;left:8px;width:auto}.modal-content{max-width:100%;margin:0 16px}}.members-search{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 12px 8px;background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-tertiary)}.members-search input{flex:1;background:none;border:none;color:var(--text-primary);font-size:14px;outline:none}.members-search input::placeholder{color:var(--text-tertiary)}.members-search .search-clear{width:20px;height:20px;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%}.members-search .search-clear:hover{background:var(--hover-bg);color:var(--text-primary)}.members-section-header{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;padding:12px 12px 6px;letter-spacing:.5px}.bot-badge{display:inline-block;padding:1px 5px;margin-left:6px;background:var(--accent);color:var(--accent-text);border-radius:4px;font-size:10px;font-weight:600;vertical-align:middle}.pinned-media{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pinned-image{max-width:200px;max-height:150px;border-radius:var(--radius-md);cursor:pointer;object-fit:cover;transition:transform .15s ease}.pinned-image:hover{transform:scale(1.02)}.pinned-video{max-width:100%;max-height:200px;border-radius:var(--radius-md)}.pinned-jump-btn{margin-top:8px;padding:4px 10px;background:none;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.pinned-jump-btn:hover{background:var(--hover-bg);color:var(--text-primary);border-color:var(--text-tertiary)}.pinned-attachment{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--accent);font-size:13px;text-decoration:none}.pinned-attachment:hover{background:var(--hover-bg)}.server-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.server-item:hover{background:var(--hover-bg)}.server-icon-img{width:44px;height:44px;border-radius:var(--radius-md);object-fit:cover}.server-icon-placeholder{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-secondary)}.server-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.server-item-name{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-item-members{font-size:13px;color:var(--text-tertiary)}.server-leave-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-tertiary);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.server-leave-btn:hover{background:#f33f431a;color:#f23f43}.friends-main-tabs{display:flex;padding:8px 12px;gap:8px;border-bottom:1px solid var(--border-color)}.friends-main-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.friends-main-tab:hover{background:var(--hover-bg);color:var(--text-primary)}.friends-main-tab.active{background:var(--accent);color:var(--accent-text)}.friends-main-tab .tab-count{background:#fff3}.friends-main-tab.active .tab-count{background:#ffffff4d}.leave-server-content{padding:20px}.leave-server-content p{margin:0 0 12px;color:var(--text-primary)}.leave-server-warning{color:var(--text-secondary)!important;font-size:14px}.leave-server-actions{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}.btn-danger{padding:10px 20px;background:#f23f43;color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-danger:hover:not(:disabled){background:#d63638}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.bot-avatar-mini{width:32px;height:32px;min-width:32px;min-height:32px;position:relative}.bot-avatar-mini img{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;object-fit:cover;aspect-ratio:1 / 1}.bot-avatar-mini svg{width:32px;height:32px;padding:4px;background:var(--bg-tertiary);border-radius:50%;color:var(--text-secondary)}.bot-status-dot{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;background:#23a55a;border:2px solid var(--bg-primary);border-radius:50%}.bot-menu-panel{position:fixed;top:calc(var(--header-height) + 8px);right:16px;width:280px;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:var(--z-dropdown);overflow:hidden}.bot-menu-header{display:flex;gap:12px;padding:16px;background:var(--bg-tertiary);align-items:center}.bot-menu-avatar{position:relative;flex-shrink:0;width:48px;height:48px}.bot-menu-avatar img{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;object-fit:cover;aspect-ratio:1 / 1}.bot-avatar-placeholder{width:48px;height:48px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff}.bot-online-dot{position:absolute;bottom:0;right:0;width:14px;height:14px;background:#23a55a;border:3px solid var(--bg-tertiary);border-radius:50%}.bot-menu-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.bot-menu-name{font-size:16px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bot-menu-username{font-size:13px;color:var(--text-secondary)}.bot-badge{display:inline-block;padding:2px 6px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;border-radius:4px;margin-top:4px;width:fit-content}.bot-menu-section{padding:8px;border-bottom:1px solid var(--border-color)}.bot-menu-section:last-child{border-bottom:none}.bot-menu-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:4px 8px 8px}.bot-menu-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;cursor:pointer;transition:background .15s ease}.bot-menu-btn:hover{background:var(--hover-bg)}.bot-menu-btn svg{color:var(--text-secondary);flex-shrink:0}.bot-menu-btn.danger{color:#f23f43}.bot-menu-btn.danger svg{color:#f23f43}.bot-menu-btn.danger:hover{background:#f23f431a}.sidebar-server-members{font-size:12px;color:var(--text-tertiary)}.sidebar-empty-hint{font-size:13px;color:var(--text-tertiary);margin-top:8px}.status-activity-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:14px;text-align:left;transition:background .15s ease}.status-activity-btn:hover{background:var(--hover-bg)}.activity-icon{font-size:18px}.activity-text{flex:1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-clear{width:24px;height:24px;border-radius:50%;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.activity-clear:hover{background:var(--hover-bg);color:var(--text-primary)}.activity-editor{display:flex;flex-direction:column;gap:10px}.activity-type-select{display:flex;flex-wrap:wrap;gap:6px}.activity-type-btn{padding:6px 10px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease}.activity-type-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.activity-type-btn.active{background:var(--accent);color:var(--accent-text)}.activity-editor input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px}.activity-editor input:focus{outline:none;border-color:var(--accent)}.activity-actions{display:flex;gap:8px;justify-content:flex-end}.status-options{display:flex;flex-direction:column;gap:2px}.status-option{display:flex;align-items:center;gap:10px;padding:8px 10px;background:none;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;cursor:pointer;transition:background .15s ease;width:100%;text-align:left}.status-option:hover{background:var(--hover-bg)}.status-option.active{background:var(--bg-tertiary)}.status-option-dot{width:14px;height:14px;border-radius:50%;position:relative;flex-shrink:0}.status-dnd-line{position:absolute;top:50%;left:3px;right:3px;height:3px;background:var(--bg-secondary);transform:translateY(-50%);border-radius:2px}.status-idle-moon{position:absolute;top:0;right:0;width:8px;height:8px;background:var(--bg-secondary);border-radius:50%}.status-option-label{flex:1}.status-option-check{color:var(--accent)}.btn-sm{padding:6px 12px;font-size:13px}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.btn-primary{background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.status-warning{display:flex;align-items:center;gap:6px;padding:8px 10px;margin-top:8px;background:#f0b2321a;border-radius:var(--radius-md);color:#f0b232;font-size:12px}.status-warning svg{flex-shrink:0}.bot-menu-current-server{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.current-server-icon{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:8px;object-fit:cover}.current-server-icon-placeholder{width:32px;height:32px;min-width:32px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.current-server-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.current-server-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-channel-name{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bot-menu-btn:disabled{opacity:.4;cursor:not-allowed}.bot-menu-btn:disabled:hover{background:none}.channel-type-section{margin-top:8px}.channel-type-header{display:flex;align-items:center;gap:4px;padding:4px 8px;width:100%;background:none;border:none;color:var(--text-tertiary);font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;cursor:pointer}.channel-type-header:hover{color:var(--text-secondary)}.channel-type-title{flex:1;text-align:left}.channel-type-count{font-size:9px;background:var(--bg-tertiary);padding:1px 5px;border-radius:var(--radius-sm)}.channel-type-list{overflow:hidden}.channel-badge{font-size:9px;padding:1px 5px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;margin-left:auto}.server-menu-channel.forum-channel{background:#5865f20d}.server-menu-channel.forum-channel:hover{background:#5865f21a}.forum-view.reddit-style{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.forum-header.reddit-style{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.forum-header.reddit-style .forum-info{display:flex;align-items:center;gap:10px}.forum-header.reddit-style .forum-icon{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#ff4500,#ff8717);display:flex;align-items:center;justify-content:center;color:#fff}.forum-header.reddit-style .forum-details h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.forum-header.reddit-style .forum-post-count{font-size:11px;color:var(--text-tertiary)}.create-post-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .15s ease}.create-post-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.forum-empty .create-post-btn{width:auto;height:auto;padding:10px 20px;border-radius:var(--radius-full);gap:8px}.forum-posts-list.reddit-style{flex:1;overflow-y:auto;display:flex;flex-direction:column}.forum-loading,.forum-empty.reddit-style{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 20px;color:var(--text-tertiary);text-align:center}.forum-empty.reddit-style h3{margin:0;font-size:18px;color:var(--text-secondary)}.forum-empty.reddit-style p{margin:0;font-size:13px;max-width:280px}.reddit-post-card{display:flex;flex-direction:column;background:var(--bg-secondary);border-bottom:8px solid var(--bg-primary)}.reddit-post-card:first-child{border-top:8px solid var(--bg-primary)}.reddit-post-card.expanded{background:var(--bg-secondary)}.post-vote-sidebar{display:none}.post-content{padding:12px 16px}.post-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.post-subreddit{font-size:12px;font-weight:600;color:var(--text-primary)}.post-meta{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:4px}.post-meta:before{content:"•";margin:0 2px}.post-tag{font-size:9px;padding:2px 6px;border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase;margin-left:6px}.post-tag.archived{background:#ffffff1a;color:var(--text-tertiary)}.post-tag.locked{background:#ff450026;color:#ff4500}.post-title{font-size:15px;font-weight:500;color:var(--text-primary);margin:0 0 12px;cursor:pointer;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-footer{display:flex;align-items:center;gap:0;margin:0 -4px}.post-action{display:flex;align-items:center;gap:6px;padding:8px 12px;background:none;border:none;font-size:12px;font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.post-action:hover{color:var(--text-secondary)}.post-action.votes{background:var(--bg-tertiary);border-radius:var(--radius-full);padding:6px 4px;gap:0}.post-action.votes .vote-btn{background:none;border:none;padding:4px 8px;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center}.post-action.votes .vote-btn:hover{color:var(--text-primary)}.post-action.votes .vote-btn.upvote:hover{color:#ff4500}.post-action.votes .vote-btn.downvote:hover{color:#7193ff}.post-action.votes .vote-count{font-size:12px;font-weight:600;color:var(--text-primary);min-width:20px;text-align:center}.post-activity{margin-left:auto;font-size:11px;color:var(--text-tertiary);padding-right:4px}.replies-tray{background:var(--bg-tertiary);overflow:hidden}.replies-tray-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-color);font-size:13px;font-weight:600;color:var(--text-secondary)}.replies-tray-actions{display:flex;gap:8px}.tray-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--bg-secondary);border:none;border-radius:var(--radius-full);font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer}.tray-btn:hover{background:var(--hover-bg)}.replies-tray-content{max-height:350px;overflow-y:auto}.replies-loading,.replies-empty{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:var(--text-tertiary);font-size:13px}.replies-loading svg{animation:spin 1s linear infinite}.replies-list{display:flex;flex-direction:column}.reply-item{padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.reply-item:last-child{border-bottom:none}.reply-item.is-op{background:#5865f214}.reply-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.reply-avatar{width:24px;height:24px;border-radius:50%}.reply-author{font-size:12px;font-weight:600;color:var(--text-primary)}.op-badge{font-size:9px;padding:2px 5px;background:#0079d3;color:#fff;border-radius:var(--radius-sm);font-weight:700}.reply-time{font-size:11px;color:var(--text-tertiary)}.reply-content{font-size:14px;color:var(--text-primary);line-height:1.45;word-break:break-word}.view-all-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:14px 16px;background:var(--bg-secondary);border:none;font-size:13px;font-weight:600;color:#0079d3;cursor:pointer}.view-all-btn:hover{background:var(--hover-bg)}.new-post-modal{position:fixed;inset:0;background:var(--bg-primary);display:flex;flex-direction:column;z-index:var(--z-modal)}.new-post-form.reddit-style{flex:1;display:flex;flex-direction:column;background:var(--bg-primary)}.new-post-form.reddit-style .new-post-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.new-post-form.reddit-style .new-post-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.new-post-form.reddit-style .close-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:8px;margin:-8px;border-radius:50%}.new-post-form.reddit-style .close-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.new-post-form.reddit-style .new-post-title{display:block;width:100%;padding:16px;background:var(--bg-secondary);border:none;border-bottom:1px solid var(--border-color);font-size:18px;font-weight:500;color:var(--text-primary);outline:none}.new-post-form.reddit-style .new-post-title::placeholder{color:var(--text-tertiary)}.new-post-form.reddit-style .new-post-content{flex:1;display:block;width:100%;padding:16px;background:var(--bg-secondary);border:none;font-size:15px;color:var(--text-primary);outline:none;font-family:inherit;resize:none}.new-post-form.reddit-style .new-post-content::placeholder{color:var(--text-tertiary)}.new-post-form.reddit-style .new-post-actions{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.new-post-form.reddit-style .btn-cancel{padding:10px 20px;background:transparent;border:none;font-size:14px;font-weight:600;color:var(--text-tertiary);cursor:pointer}.new-post-form.reddit-style .btn-cancel:hover{color:var(--text-secondary)}.new-post-form.reddit-style .btn-submit{padding:10px 24px;background:#0079d3;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;color:#fff;cursor:pointer}.new-post-form.reddit-style .btn-submit:hover:not(:disabled){background:#006cbd}.new-post-form.reddit-style .btn-submit:disabled{opacity:.4;cursor:not-allowed}@media(min-width:768px){.new-post-modal{background:#000000b3;align-items:center;justify-content:center;padding:20px}.new-post-form.reddit-style{width:100%;max-width:600px;max-height:80vh;border-radius:var(--radius-lg);overflow:hidden}.reddit-post-card{border-bottom:1px solid var(--border-color);margin:0 12px 8px;border-radius:var(--radius-md)}.reddit-post-card:first-child{border-top:none;margin-top:12px}}.offline-banner{position:fixed;top:0;left:0;right:0;padding:8px 16px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;z-index:var(--z-modal);box-shadow:0 2px 8px #0003}.offline-banner svg{animation:pulse 2s ease-in-out infinite}.pending-indicator{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:11px;color:var(--text-secondary)}.pending-indicator svg{animation:spin 1s linear infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-elevated) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.message-list-skeleton,.channel-list-skeleton,.member-list-skeleton{display:flex;flex-direction:column}.thread-panel{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;z-index:var(--z-sidebar)}.thread-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.thread-header h3{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.thread-title{font-size:14px;color:var(--text-secondary);padding:0 20px;margin-top:8px}.thread-input-container{padding:16px;border-top:1px solid var(--border-color)}.thread-input{display:flex;gap:8px}.thread-input input{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary)}.thread-input input:focus{border-color:var(--accent);outline:none}.thread-input button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md)}.thread-preview{margin-top:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--accent);cursor:pointer;transition:background var(--transition-fast)}.thread-preview:hover{background:var(--hover-bg)}.thread-preview-header{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);font-weight:500}.thread-preview-content{font-size:13px;color:var(--text-secondary);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview{margin-top:8px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);background:var(--bg-tertiary);max-width:400px}.link-preview-content{padding:12px}.link-preview-site{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:4px}.link-preview-title{font-size:14px;font-weight:600;color:var(--accent);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-preview-description{font-size:13px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.link-preview.youtube{border-left:3px solid #ff0000}.link-preview.twitter{border-left:3px solid #1da1f2}.link-preview.spotify{border-left:3px solid #1db954}@media(max-width:768px){.thread-panel{width:100%}.link-preview{max-width:100%}}.offline-indicator{position:fixed;top:0;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-elevated);border:1px solid var(--border-color);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);font-size:13px;color:var(--text-secondary);z-index:var(--z-sticky);box-shadow:var(--shadow-md)}.offline-indicator.offline{background:#f23f43;color:#fff;border-color:#f23f43}.offline-indicator.syncing{background:var(--accent);color:#fff;border-color:var(--accent)}.offline-indicator svg{animation:none}.offline-indicator.syncing svg{animation:spin 1s linear infinite}.offline-indicator .pending-badge{background:#fff3;padding:2px 8px;border-radius:var(--radius-full);font-size:11px}.offline-indicator .retry-btn,.offline-indicator .clear-btn{padding:4px 10px;border:none;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;margin-left:4px}.offline-indicator .retry-btn{background:#fff3;color:#fff}.offline-indicator .clear-btn{background:transparent;color:#ffffffb3}.link-preview{margin-top:8px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--accent);max-width:400px}.link-preview.loading{padding:0;border:none;background:transparent}.link-preview-skeleton{height:80px;background:var(--bg-tertiary);border-radius:var(--radius-md);overflow:hidden;position:relative}.skeleton-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);animation:shimmer-slide 1.5s infinite}@keyframes shimmer-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.link-preview .preview-provider{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.link-preview.youtube{border-left-color:red}.link-preview.twitter{border-left-color:#1da1f2}.link-preview.github{border-left-color:#238636}.link-preview.spotify{border-left-color:#1db954}.link-preview .preview-thumbnail{position:relative;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden}.link-preview .preview-thumbnail img{width:100%;display:block}.link-preview .play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;transition:background var(--transition-fast)}.link-preview .preview-thumbnail:hover .play-overlay{background:#0009}.link-preview .preview-embed{position:relative}.link-preview .preview-embed iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:var(--radius-sm)}.link-preview .spotify-embed iframe{height:80px;aspect-ratio:auto}.link-preview .collapse-btn,.link-preview .expand-btn{display:flex;align-items:center;gap:4px;margin-top:8px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);cursor:pointer}.link-preview .preview-link,.link-preview .preview-content{display:flex;align-items:center;gap:8px;color:var(--accent);text-decoration:none;font-size:14px}.link-preview .preview-link:hover,.link-preview .preview-content:hover{text-decoration:underline}.link-preview .repo-name{font-family:var(--font-mono)}.link-preview .preview-link-generic{display:flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:13px}.link-preview .link-domain{color:var(--accent)}.thread-view{position:fixed;top:0;right:0;width:100%;max-width:420px;height:100%;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;z-index:var(--z-modal)}.thread-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.thread-info{display:flex;align-items:center;gap:12px}.thread-title h3{margin:0;font-size:16px;font-weight:600}.thread-title .thread-parent{font-size:12px;color:var(--text-tertiary)}.thread-messages{flex:1;overflow-y:auto;padding:16px}.thread-loading,.thread-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);gap:12px}.thread-loading svg{animation:spin 1s linear infinite}.thread-input{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.thread-input textarea{flex:1;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary);resize:none;min-height:40px;max-height:120px}.thread-input textarea:focus{outline:none;border-color:var(--accent)}.thread-input .send-btn{padding:10px;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer}.thread-input .send-btn:disabled{opacity:.5;cursor:not-allowed}.search-messages-panel{position:fixed;top:0;right:0;width:100%;max-width:400px;height:100%;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;z-index:var(--z-modal)}.search-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.search-header h3{display:flex;align-items:center;gap:8px;margin:0;font-size:16px}.search-input-container{padding:12px 16px;border-bottom:1px solid var(--border-color)}.search-input-wrapper{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.search-input-wrapper input{flex:1;background:transparent;border:none;font-size:14px;color:var(--text-primary);outline:none}.search-input-wrapper .clear-btn{padding:4px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer}.search-scope{display:flex;gap:8px;margin-top:10px}.search-scope .scope-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:12px;color:var(--text-secondary);cursor:pointer}.search-scope .scope-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-toggle{display:flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);cursor:pointer;position:relative}.filter-toggle.active{border-color:var(--accent);color:var(--accent)}.filter-toggle .filter-badge{position:absolute;top:-4px;right:-4px;width:8px;height:8px;background:var(--accent);border-radius:50%}.search-filters{padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);overflow:hidden}.search-filters .filter-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.search-filters label{width:60px;font-size:12px;color:var(--text-secondary)}.search-filters select,.search-filters input[type=date]{flex:1;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary)}.search-filters .clear-filters{width:100%;padding:8px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:12px;color:var(--text-tertiary);cursor:pointer;margin-top:4px}.search-results{flex:1;overflow-y:auto;padding:8px}.search-loading,.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-tertiary);gap:8px;text-align:center}.search-loading svg{animation:spin 1s linear infinite}.search-empty span{font-size:12px}.results-count{padding:8px 12px;font-size:12px;color:var(--text-tertiary)}.search-result{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.search-result:hover{background:var(--hover-bg)}.search-result .result-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0}.search-result .result-content{flex:1;min-width:0}.search-result .result-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.search-result .result-author{font-weight:600;font-size:14px}.search-result .result-channel{font-size:12px;color:var(--text-tertiary)}.search-result .result-time{font-size:11px;color:var(--text-tertiary);margin-left:auto}.search-result .result-text{font-size:13px;color:var(--text-secondary);line-height:1.4;word-break:break-word}.search-result .result-text .search-highlight{background:#facc154d;color:var(--text-primary);padding:0 2px;border-radius:2px}.search-result .result-attachments{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:var(--text-tertiary)}.search-result .result-arrow{color:var(--text-tertiary);flex-shrink:0}.load-more-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary);cursor:pointer}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}.message-skeleton-container{padding:16px}.message-skeleton{display:flex;gap:12px;margin-bottom:20px;animation:pulse 1.5s ease-in-out infinite}.message-skeleton .skeleton-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);flex-shrink:0}.message-skeleton .skeleton-content{flex:1}.message-skeleton .skeleton-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.message-skeleton .skeleton-name{width:120px;height:14px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.message-skeleton .skeleton-time{width:60px;height:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.message-skeleton .skeleton-text{height:14px;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:6px}.message-skeleton .skeleton-text:first-of-type{width:100%}.message-skeleton .skeleton-text.short{width:60%}.message-skeleton .skeleton-text.medium{width:80%}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.unread-divider{display:flex;align-items:center;justify-content:center;padding:8px 0;margin:12px 0;position:relative}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:#f23f43}.unread-divider{font-size:11px;font-weight:600;color:#f23f43;padding:0 12px;text-transform:uppercase;letter-spacing:.5px}.file-preview.pasted-image{border:2px dashed var(--accent)}.file-preview .paste-badge{position:absolute;top:4px;left:4px;padding:2px 6px;background:var(--accent);border-radius:var(--radius-sm);font-size:10px;color:#fff;text-transform:uppercase}.message.queued{opacity:.6}.message.queued .queued-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:11px;color:var(--text-tertiary);margin-left:8px}.message.queued .queued-badge svg{animation:spin 1s linear infinite}.message.failed .failed-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#f23f4333;border-radius:var(--radius-sm);font-size:11px;color:#f23f43;margin-left:8px}.message .thread-indicator{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:13px;color:var(--accent);cursor:pointer;border-left:2px solid var(--accent)}.message .thread-indicator:hover{background:var(--hover-bg)}.message .thread-indicator .thread-count{color:var(--text-tertiary);font-size:12px}@media(max-width:768px){.thread-view,.search-messages-panel{max-width:100%}.offline-indicator{left:0;right:0;transform:none;border-radius:0;justify-content:center}}.exit-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:20px}.exit-dialog{background:var(--bg-primary);border-radius:var(--radius-lg);padding:32px;max-width:320px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.exit-dialog-icon{width:64px;height:64px;margin:0 auto 16px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.exit-dialog h3{margin:0 0 8px;font-size:18px;font-weight:600}.exit-dialog p{margin:0 0 24px;color:var(--text-secondary);font-size:14px}.exit-dialog-buttons button{flex:1;padding:12px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.exit-dialog-buttons .btn-cancel{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.exit-dialog-buttons .btn-cancel:hover{background:var(--hover-bg)}.exit-dialog-buttons .btn-confirm{background:#f23f43;border:none;color:#fff}.exit-dialog-buttons .btn-confirm:hover{background:#d93438}.header-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);margin-right:8px}.header-back-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.header-back-btn:active{transform:scale(.95)}.nav-breadcrumb{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary);margin-bottom:2px}.nav-breadcrumb svg{width:12px;height:12px}.header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(var(--bg-secondary-rgb, 22, 25, 33),.85)!important;border-bottom:1px solid var(--border-color)}.header-title{font-weight:600;letter-spacing:-.01em}.header-channel-name{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.sidebar{background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%)}.server-list{padding:8px}.server-item{position:relative;width:48px;height:48px;border-radius:24px;transition:border-radius var(--transition-base),transform var(--transition-fast);overflow:hidden}.server-item:hover{border-radius:16px;transform:scale(1.05)}.server-item.active{border-radius:16px}.server-item:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:4px;height:0;background:var(--text-primary);border-radius:0 4px 4px 0;transition:height var(--transition-base)}.server-item:hover:before{height:20px}.server-item.active:before{height:36px}.channel-item{margin:2px 8px;padding:8px 12px;border-radius:var(--radius-md);transition:all var(--transition-fast);position:relative}.channel-item:hover{background:var(--hover-bg);transform:translate(2px)}.channel-item.active{background:var(--active-bg);font-weight:500}.channel-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--accent);border-radius:0 3px 3px 0}.channel-name{font-size:14px;font-weight:500}.message-group{padding:12px 16px;margin:0 8px;border-radius:var(--radius-md);transition:background var(--transition-fast)}.message-group:hover{background:var(--hover-bg)}.message-avatar img{width:40px;height:40px;border-radius:var(--avatar-radius);border:2px solid var(--bg-tertiary);transition:transform var(--transition-fast),border-color var(--transition-fast)}.message-avatar img:hover{transform:scale(1.1);border-color:var(--accent)}.message-author{font-weight:600;font-size:15px;color:var(--text-primary);transition:color var(--transition-fast)}.message-author:hover{color:var(--accent)}.message-time{font-size:11px;color:var(--text-tertiary);font-weight:500;letter-spacing:.02em}.message-text{font-size:15px;line-height:1.5;color:var(--text-primary)}.mention{background:#5865f226;color:#5865f2;padding:0 4px;border-radius:4px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.mention:hover{background:#5865f24d}.channel-mention{background:#3ba55d26;color:#3ba55c}.channel-mention:hover{background:#3ba55d4d}.role-mention{background:#eb459e26;color:#eb459e}.role-mention:hover{background:#eb459e4d}.message-input-container{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:12px 16px}.message-input-wrapper{background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-color);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.message-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #5865f226}.message-input textarea{font-size:15px;line-height:1.4}.icon-btn{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--hover-bg);color:var(--text-primary);transform:scale(1.05)}.icon-btn:active{transform:scale(.95)}.btn-primary{background:var(--accent);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-md);font-weight:600;font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #5865f24d}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:10px 20px;border-radius:var(--radius-md);font-weight:500;font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--hover-bg);border-color:var(--text-tertiary)}.panel{background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.panel-header{padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.panel-header h3{font-size:16px;font-weight:600;letter-spacing:-.01em}.message-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.reaction{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.reaction:hover{background:var(--hover-bg);border-color:var(--text-tertiary);transform:scale(1.05)}.reaction.active{background:#5865f226;border-color:var(--accent);color:var(--accent)}.reaction-emoji{font-size:16px}.reaction-count{font-weight:600;font-size:12px}.toast{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 18px;display:flex;align-items:flex-start;gap:12px;animation:toastSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{width:24px;height:24px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast.success .toast-icon{background:#3ba55d26;color:#3ba55c}.toast.error .toast-icon{background:#ed424526;color:#ed4245}.toast.warning .toast-icon{background:#fee75c26;color:#fee75c}.toast-content{flex:1}.toast-title{font-weight:600;font-size:14px;margin-bottom:2px}.toast-message{font-size:13px;color:var(--text-secondary)}.modal-overlay{background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:440px;width:calc(100% - 32px);animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{padding:20px 24px 0}.modal-title{font-size:20px;font-weight:700;letter-spacing:-.02em}.modal-body{padding:16px 24px}.modal-footer{padding:16px 24px 20px;display:flex;justify-content:flex-end;gap:12px}.exit-dialog-overlay{background:#000000bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.exit-dialog{background:var(--bg-secondary);border-radius:var(--radius-xl);padding:32px;text-align:center;max-width:320px;box-shadow:var(--shadow-lg)}.exit-dialog-icon{width:64px;height:64px;margin:0 auto 20px;background:#ed42451a;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#ed4245}.exit-dialog h3{font-size:20px;font-weight:700;margin-bottom:8px}.exit-dialog p{color:var(--text-secondary);font-size:14px;margin-bottom:24px}.exit-dialog-buttons{display:flex;gap:12px}.exit-dialog .btn-cancel{flex:1;padding:12px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);font-weight:600;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.exit-dialog .btn-cancel:hover{background:var(--hover-bg)}.exit-dialog .btn-confirm{flex:1;padding:12px;background:#ed4245;border:none;border-radius:var(--radius-md);font-weight:600;color:#fff;cursor:pointer;transition:background var(--transition-fast)}.exit-dialog .btn-confirm:hover{background:#d63a3d}.status-bar{height:var(--status-height);background:var(--bg-tertiary);border-top:1px solid var(--border-color);padding:0 16px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-tertiary)}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);margin-right:8px}.status-indicator.online{background:#3ba55c;box-shadow:0 0 8px #3ba55d80}.latency-indicator{padding:2px 8px;background:var(--bg-secondary);border-radius:var(--radius-full);font-size:11px;font-weight:500;margin-left:8px}.version{font-weight:500;opacity:.7}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::selection{background:#5865f24d;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main-window{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.spinner,.loading-spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.typing-indicator-bar{padding:8px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.typing-bubble-dots span{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.file-preview{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px;display:flex;align-items:center;gap:12px;margin-bottom:8px}.file-preview-image{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm)}.file-preview-info{flex:1;min-width:0}.file-preview-name{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-preview-size{font-size:12px;color:var(--text-tertiary)}.file-preview-remove{width:28px;height:28px;border-radius:var(--radius-full);background:var(--hover-bg);border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.file-preview-remove:hover{background:#ed424526;color:#ed4245}.context-menu{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px;min-width:180px;animation:contextMenuFade .15s ease}@keyframes contextMenuFade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);font-size:14px;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.context-menu-item.danger{color:#ed4245}.context-menu-item.danger:hover{background:#ed42451a}.context-menu-divider{height:1px;background:var(--border-color);margin:6px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-tertiary)}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state h3{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-state p{font-size:14px;max-width:280px}.back-to-latest-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);border:none;border-radius:var(--radius-full);font-size:13px;font-weight:600;color:#fff;cursor:pointer;box-shadow:0 4px 12px #5865f266;transition:all var(--transition-fast)}.back-to-latest-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5865f280}.header,.sidebar,.status-bar,.message-input-container,.panel-header,.server-item,.channel-item,.btn-primary,.btn-secondary,.icon-btn,.context-menu,.toast,.modal{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.message-text{-webkit-user-select:text;user-select:text}html{touch-action:pan-x pan-y}body{overscroll-behavior:none;-webkit-overflow-scrolling:touch}.message-list,.sidebar-channels,.panel-content,.search-results{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.bounce-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch}@media(hover:none)and (pointer:coarse){.server-item:hover,.channel-item:hover,.message-group:hover,.icon-btn:hover,.btn-primary:hover,.btn-secondary:hover,.context-menu-item:hover,.reaction:hover{background:inherit;transform:none;box-shadow:none}.server-item:active,.channel-item:active,.icon-btn:active,.btn-primary:active,.btn-secondary:active,.context-menu-item:active,.reaction:active{transform:scale(.95);opacity:.8}.message-group:active{background:var(--hover-bg)}}.splash-screen{position:fixed;inset:0;background:#2f3136;display:flex;align-items:center;justify-content:center;z-index:10000}.splash-content{display:flex;flex-direction:column;align-items:center;gap:24px}.splash-logo{width:120px;height:120px;border-radius:28px;overflow:hidden;box-shadow:0 20px 60px #00000080}.splash-logo img{width:100%;height:100%;object-fit:cover}.splash-title{font-size:28px;font-weight:700;color:#fff;letter-spacing:2px;margin:0}.splash-loader{width:200px}.splash-loader-bar{height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.splash-loader-fill{height:100%;background:#fff;border-radius:2px}.message{position:relative;overflow:visible}.message.swiping{z-index:10}.message.long-pressing{transform:scale(.98);opacity:.9}.swipe-indicator{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;pointer-events:none;transition:opacity .1s}.swipe-indicator.swipe-reply{left:-50px;background:var(--accent)}.swipe-indicator.swipe-action{right:-50px;background:#ed4245}.message.is-own .swipe-indicator.swipe-action{background:#ed4245}.pull-indicator{position:absolute;top:0;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;padding:12px;pointer-events:none;z-index:10}.pull-indicator-content{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-elevated);border-radius:var(--radius-full);box-shadow:var(--shadow-md);font-size:13px;color:var(--text-secondary)}.pull-indicator-spinner{width:18px;height:18px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%}.pull-indicator.ready .pull-indicator-spinner{border-top-color:#3ba55c}.pull-indicator.refreshing .pull-indicator-spinner{animation:spin .8s linear infinite}.page-transition-enter{transform:translate(100%);opacity:0}.page-transition-enter-active{transform:translate(0);opacity:1;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.page-transition-exit{transform:translate(0);opacity:1}.page-transition-exit-active{transform:translate(-30%);opacity:0;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.page-transition-back-enter{transform:translate(-30%);opacity:0}.page-transition-back-enter-active{transform:translate(0);opacity:1;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.page-transition-back-exit{transform:translate(0);opacity:1}.page-transition-back-exit-active{transform:translate(100%);opacity:0;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.panel,.thread-view,.search-messages-panel,.settings-panel{animation:panelSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes panelSlideIn{0%{transform:translate(100%);opacity:.5}to{transform:translate(0);opacity:1}}.native-btn{transition:transform .1s ease,opacity .1s ease}.native-btn:active{transform:scale(.95);opacity:.8}@media(pointer:coarse){.icon-btn{min-width:44px;min-height:44px}.channel-item,.context-menu-item{min-height:44px}.reaction{min-height:36px;padding:8px 12px}}.main-window{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.header{padding-top:env(safe-area-inset-top)}.status-bar{padding-bottom:env(safe-area-inset-bottom)}.message-input-container{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.message-list{scroll-behavior:smooth}@media(max-width:768px){.message-list::-webkit-scrollbar,.sidebar::-webkit-scrollbar,.panel-content::-webkit-scrollbar{display:none}.message-list,.sidebar,.panel-content{-ms-overflow-style:none;scrollbar-width:none}}.modal-overlay,.exit-dialog-overlay,.lightbox-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.context-menu-overlay{background:transparent}.settings-overlay{animation:settingsFadeIn .3s ease}@keyframes settingsFadeIn{0%{opacity:0}to{opacity:1}}.settings-panel{animation:settingsSlideIn .35s cubic-bezier(.16,1,.3,1)}@keyframes settingsSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.message.long-press-active{background:var(--hover-bg);border-radius:var(--radius-md)}.double-tap-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);font-size:48px;pointer-events:none;animation:doubleTapHeart .6s ease-out forwards}@keyframes doubleTapHeart{0%{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-elevated) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.message-input-wrapper:focus-within{box-shadow:0 0 0 4px #5865f233}*{-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.message,.server-item,.channel-item,.panel,.modal{will-change:transform;transform:translateZ(0);-webkit-transform:translateZ(0)}.notifications-overlay{position:fixed;inset:0;background:#00000080;z-index:500}.notifications-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:380px;background:var(--bg-secondary);display:flex;flex-direction:column;box-shadow:-4px 0 20px #0000004d;z-index:501}.notifications-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.notifications-title{display:flex;align-items:center;gap:10px}.notifications-title h2{font-size:18px;font-weight:600;margin:0}.notif-badge{background:#ed4245;color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:20px;text-align:center}.menu-badge{background:#ed4245;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:8px;margin-left:auto}.notifications-filters{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-color);overflow-x:auto}.filter-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.filter-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.notifications-actions{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.notifications-actions .action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.notifications-actions .action-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.notifications-actions .action-btn.danger:hover{background:#ed42451a;color:#ed4245}.notifications-list{flex:1;overflow-y:auto;padding:8px}.notification-item{display:flex;gap:12px;padding:14px;background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;position:relative;transition:all var(--transition-fast)}.notification-item:hover{background:var(--hover-bg)}.notification-item.unread{background:#5865f214;border-left:3px solid var(--accent)}.notification-item.unread:hover{background:#5865f21f}.notif-icon-wrapper{width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}.notif-emoji{font-size:18px}.notif-content{flex:1;min-width:0}.notif-header{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.notif-author{font-weight:600;font-size:14px;color:var(--text-primary)}.notif-action{font-size:14px;color:var(--text-secondary)}.notif-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.notif-meta{display:flex;gap:8px;font-size:12px;color:var(--text-tertiary)}.notif-channel{color:var(--accent)}.notif-unread-dot{position:absolute;top:14px;right:14px;width:8px;height:8px;background:var(--accent);border-radius:50%}.notifications-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text-tertiary)}.notifications-empty svg{opacity:.4;margin-bottom:16px}.notifications-empty h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.notifications-empty p{font-size:14px;margin:0}@media(max-width:480px){.notifications-panel{max-width:100%}}.header{height:var(--header-height);display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:var(--z-header);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:var(--radius-md);transition:all .15s ease;flex-shrink:0}.icon-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.icon-btn:active{background:var(--active-bg);transform:scale(.95)}.header-title{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--text-primary);min-width:0;letter-spacing:-.01em}.header-subtitle{font-size:12px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.online-dot{width:8px;height:8px;background:var(--success);border-radius:50%;flex-shrink:0}.header-online-count{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-tertiary);flex-shrink:0}.header-dropdown{position:absolute;top:100%;right:0;margin-top:6px;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:4px;z-index:var(--z-dropdown)}.header-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13px;color:var(--text-primary);border-radius:var(--radius-md);transition:background .12s ease;text-align:left}.header-dropdown-item:hover{background:var(--hover-bg)}.header-dropdown-item svg{color:var(--text-tertiary);flex-shrink:0}.mention{background:var(--mention-bg);color:var(--mention-color);padding:0 4px;border-radius:4px;font-weight:500;font-size:inherit;cursor:pointer;transition:background .12s ease;text-decoration:none}.mention:hover{background:var(--mention-hover-bg);text-decoration:none}.channel-mention{background:var(--channel-mention-bg);color:var(--channel-mention-color)}.channel-mention:hover{background:color-mix(in srgb,var(--channel-mention-color) 20%,transparent)}.role-mention{background:var(--role-mention-bg);color:var(--role-mention-color)}.role-mention:hover{background:color-mix(in srgb,var(--role-mention-color) 20%,transparent)}.link{color:var(--accent);text-decoration:none;font-weight:inherit;transition:color .12s ease}.link:hover{text-decoration:underline;opacity:1}.message-text .md-inline-code{padding:1px 6px;background:var(--code-bg);border:1px solid var(--code-border);border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.875em;color:var(--text-primary)}.message-text .md-code-block{margin:8px 0;padding:0;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-md);overflow:hidden;position:relative}.message-text .md-code-block code{font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.5;white-space:pre;display:block;padding:12px 14px;overflow-x:auto;color:var(--text-primary)}.code-lang-label{display:block;padding:4px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--code-lang);border-bottom:1px solid var(--code-border);background:color-mix(in srgb,var(--code-bg) 80%,var(--bg-tertiary))}.code-keyword{color:var(--code-keyword)}.code-string{color:var(--code-string)}.code-number{color:var(--code-number)}.code-comment{color:var(--code-comment);font-style:italic}.message-text .md-blockquote{margin:4px 0;padding:4px 14px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-primary)}.message-text .spoiler{background:var(--bg-tertiary);color:transparent;padding:0 4px;border-radius:4px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.message-text .spoiler.revealed{background:var(--hover-bg);color:var(--text-primary)}.message-group{display:flex;gap:12px;padding:6px 12px;contain:content}.message-avatar img{width:40px;height:40px;min-width:40px;min-height:40px;object-fit:cover;border-radius:var(--avatar-radius);cursor:pointer;transition:opacity .12s ease}.message-avatar img:hover{opacity:.85}.message-header{display:flex;align-items:baseline;gap:8px;margin-bottom:2px;flex-wrap:wrap}.message-author{font-weight:600;font-size:14px;cursor:pointer;line-height:1.3;letter-spacing:-.01em}.message-author:hover{text-decoration:underline}.message-time{font-size:11px;color:var(--text-tertiary);font-weight:400;letter-spacing:0}.message{position:relative;padding:3px 0;border-radius:var(--radius-sm);transition:background .1s ease}.message.selected,.message.highlighted{background:var(--hover-bg)}.message-text{font-size:15px;line-height:1.5;color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;-webkit-user-select:text;user-select:text}.edited-badge{font-size:11px;color:var(--text-tertiary);margin-left:4px;font-weight:400}.bot-badge{display:inline-flex;align-items:center;padding:1px 5px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;background:var(--accent);color:var(--accent-text);border-radius:3px;vertical-align:middle;line-height:1.4}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;transition:all .12s ease;font-size:13px;height:28px}.reaction:hover{background:var(--hover-bg);border-color:var(--text-tertiary)}.reaction.active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}.reaction-emoji{font-size:16px;line-height:1}.reaction-emoji-img{width:16px;height:16px;object-fit:contain}.reaction-count{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:8px;text-align:center}.reaction.active .reaction-count{color:var(--accent)}.reaction-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px 10px;font-size:12px;white-space:nowrap;box-shadow:var(--shadow-md);z-index:100}.reaction-user{color:var(--text-secondary)}.reaction-user+.reaction-user:before{content:", "}.reaction-more{color:var(--text-tertiary);font-style:italic}.message-reply-indicator{display:flex;align-items:center;gap:6px;padding:4px 8px;margin-bottom:4px;margin-left:52px;font-size:12px;color:var(--text-tertiary);border-left:2px solid var(--text-tertiary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;transition:background .12s ease;max-width:fit-content}.message-reply-indicator:hover{background:var(--hover-bg)}.reply-author{font-weight:600;color:var(--text-secondary)}.reply-preview{color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.thread-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;margin-top:4px;background:transparent;border:none;color:var(--accent);font-size:12px;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:background .12s ease}.thread-indicator:hover{background:var(--hover-bg)}.thread-last-reply{color:var(--text-tertiary);font-weight:400}.message-input-container{position:relative;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg-secondary);border-top:1px solid var(--border-color)}.input-wrapper textarea{width:100%;height:76px;min-height:76px;max-height:150px;padding:0 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);resize:none;transition:border-color .15s ease,box-shadow .15s ease;display:flex;align-items:center;line-height:76px;font-size:15px;color:var(--text-primary)}.input-wrapper textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent);padding:12px 14px;line-height:1.5;outline:none}.input-wrapper textarea::placeholder{color:var(--text-tertiary)}.send-btn{background:var(--accent);color:var(--accent-text);border-radius:var(--radius-md);transition:all .15s ease}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.95)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.context-menu{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:4px;min-width:180px;z-index:var(--z-modal)}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;font-size:13px;color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:background .1s ease}.context-menu-item:hover{background:var(--hover-bg)}.context-menu-item.danger{color:var(--danger)}.context-menu-item.danger:hover{background:var(--danger-bg)}.context-menu-item svg{color:var(--text-tertiary);flex-shrink:0}.context-menu-item.danger svg{color:var(--danger)}.context-menu-divider{height:1px;background:var(--border-color);margin:4px 6px}.server-menu-panel{position:fixed;top:calc(var(--header-height) + 6px);left:12px;width:320px;max-height:calc(100vh - var(--header-height) - 48px);background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:var(--z-dropdown);display:flex;flex-direction:column;overflow:hidden}.server-menu-panel-header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border-color);font-weight:600;font-size:13px;color:var(--text-primary);letter-spacing:-.01em}.server-menu-header{width:100%;display:flex;align-items:center;gap:10px;padding:6px 8px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background .1s ease}.server-menu-header:hover{background:var(--hover-bg)}.server-menu-header.selected{background:var(--accent);color:var(--accent-text)}.server-menu-icon{width:34px;height:34px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.server-menu-icon-placeholder{width:34px;height:34px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.server-menu-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-menu-channel{display:flex;align-items:center;gap:6px;padding:5px 8px 5px 16px;font-size:13px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease}.server-menu-channel:hover{background:var(--hover-bg);color:var(--text-primary)}.server-menu-channel.active{background:var(--accent);color:var(--accent-text)}.channel-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:14px;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .1s ease}.channel-item:hover{background:var(--hover-bg);color:var(--text-primary)}.channel-item.active{background:var(--active-bg);color:var(--text-primary);font-weight:500}.channel-icon{color:var(--text-tertiary);flex-shrink:0}.channel-item.active .channel-icon{color:var(--text-primary)}.channel-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.uncategorized-channels{padding:4px 0}.settings-modal{width:100%;max-width:480px;min-height:400px;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);overflow:hidden;color:var(--text-primary)}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.settings-header h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.settings-section{padding:16px 20px;color:var(--text-primary)}.settings-section h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-tertiary);margin-bottom:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}.setting-info{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-primary)}.setting-info svg{color:var(--text-tertiary)}.setting-description{font-size:13px;color:var(--text-tertiary);margin-bottom:10px}.setting-hint{display:block;font-size:12px;color:var(--text-tertiary);margin-top:6px}.setting-error{font-size:12px;color:var(--danger);margin-top:6px}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.theme-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;text-align:left}.theme-option:hover{background:var(--hover-bg);border-color:var(--border-color)}.theme-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg-tertiary))}.theme-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-sm)}.theme-option.active .theme-icon{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.theme-name{font-size:13px;font-weight:500;color:var(--text-primary);display:block}.theme-option.active .theme-name{color:var(--accent)}.theme-label{display:flex;flex-direction:column;gap:1px;min-width:0}.theme-description{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--bg-tertiary);border-radius:var(--radius-full);transition:all .2s ease;cursor:pointer;border:1px solid var(--border-color)}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:2px;bottom:2px;background:var(--text-tertiary);border-radius:50%;transition:all .2s ease}.toggle input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle input:checked+.toggle-slider:before{background:var(--accent-text);transform:translate(18px)}.bubble-color-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.bubble-color-option{width:36px;height:36px;border-radius:var(--radius-full);border:2px solid transparent;padding:3px;cursor:pointer;transition:all .15s ease;background:transparent}.bubble-color-option:hover{transform:scale(1.1)}.bubble-color-option.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent)}.bubble-color-swatch{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:var(--radius-full)}.bubble-color-swatch.default-swatch{background:conic-gradient(from 0deg,#ff3b30,#ff9500,#fc0,#34c759,#5ac8fa,#007aff,#af52de,#ff2d55,#ff3b30);color:#fff}.custom-color-row{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.custom-color-row label{font-size:13px;color:var(--text-secondary)}.color-picker-input{width:44px;height:32px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-tertiary)}.reset-color-btn{font-size:12px;color:var(--text-tertiary);padding:4px 10px;border-radius:var(--radius-sm);background:var(--bg-tertiary);transition:all .12s ease}.reset-color-btn:hover{color:var(--text-primary);background:var(--hover-bg)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:500;border-radius:var(--radius-md);transition:all .15s ease;border:none;cursor:pointer}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.98)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:var(--bg-tertiary);color:var(--text-primary);font-size:14px;font-weight:500;border-radius:var(--radius-md);border:1px solid var(--border-color);transition:all .15s ease;cursor:pointer}.btn-sm{padding:4px 10px;font-size:12px}.link-preview{margin-top:6px;max-width:420px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:border-color .12s ease}.link-preview:hover{border-color:var(--text-tertiary)}.link-preview-image{width:100%;max-height:200px;object-fit:cover}.link-preview-content{padding:10px 12px}.link-preview-site{font-size:11px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.link-preview-title{font-size:14px;font-weight:600;color:var(--accent);line-height:1.3;margin-bottom:4px}.link-preview-title a{color:inherit;text-decoration:none}.link-preview-title a:hover{text-decoration:underline}.link-preview-description{font-size:13px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.spotify-icon,.twitter-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);margin-right:4px}.video-embed{max-width:420px;border-radius:var(--radius-md);overflow:hidden;margin-top:6px;position:relative}.video-embed.thumbnail{cursor:pointer;border:1px solid var(--border-color)}.video-embed.thumbnail img,.video-embed.thumbnail .video-embed-placeholder{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block}.video-embed.playing{aspect-ratio:16 / 9}.video-embed.playing iframe{width:100%;height:100%;border:none}.video-embed-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;transition:background .2s ease}.video-embed.thumbnail:hover .video-embed-overlay{background:#0003}.play-button{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#000000a6;border-radius:50%;color:#fff;transition:transform .15s ease}.video-embed.thumbnail:hover .play-button{transform:scale(1.08)}.video-embed-info{position:absolute;bottom:10px;left:10px}.platform-badge{padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.3px}.video-embed-link{position:absolute;top:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:var(--radius-sm);color:#fff;opacity:0;transition:opacity .15s ease}.video-embed.thumbnail:hover .video-embed-link{opacity:1}.video-embed-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-tertiary)}.attachment{margin-top:4px}.attachment-image{max-width:400px;max-height:350px;border-radius:var(--radius-md);cursor:pointer;display:block}.attachment-file{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--accent);font-size:13px;font-weight:500;text-decoration:none;transition:all .12s ease}.attachment-file:hover{background:var(--hover-bg);border-color:var(--accent)}.attachment-file svg{color:var(--text-tertiary)}.attachment-video{max-width:420px;border-radius:var(--radius-md);overflow:hidden;position:relative}.attachment-video video{width:100%;display:block;border-radius:var(--radius-md)}.attachment-audio{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);max-width:360px}.audio-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-sm);flex-shrink:0}.audio-filename{font-size:13px;font-weight:500;color:var(--text-primary)}.audio-info{flex:1;min-width:0}.audio-info audio{width:100%;height:28px;margin-top:4px}.audio-download{color:var(--text-tertiary);transition:color .12s ease}.audio-download:hover{color:var(--accent)}.attachment.spoiler{position:relative}.spoiler-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:300px;height:200px;background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);font-size:13px;transition:background .12s ease}.spoiler-overlay:hover{background:var(--hover-bg)}.inline-emoji{width:1.375em;height:1.375em;vertical-align:-.3em;object-fit:contain}.toast-container{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translate(-50%);z-index:calc(var(--z-modal) + 10);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:13px;color:var(--text-primary);pointer-events:auto;max-width:360px}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}.confirm-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#0009;z-index:var(--z-modal)}.confirm-dialog{width:100%;max-width:360px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:24px;text-align:center}.confirm-dialog h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.confirm-dialog p{font-size:14px;color:var(--text-secondary);margin-bottom:20px}.confirm-actions{display:flex;gap:8px;justify-content:center}.confirm-actions .btn-danger{background:var(--danger);color:#fff;padding:8px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;transition:all .12s ease}.confirm-actions .btn-danger:hover{opacity:.9}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);font-weight:600;font-size:14px;color:var(--text-primary)}.panel-content{flex:1;overflow-y:auto;padding:8px}.search-messages-panel{background:var(--bg-secondary);border-left:1px solid var(--border-color)}.search-results{padding:8px}.search-result-item{padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background .1s ease}.search-result-item:hover{background:var(--hover-bg)}.typing-indicator-bar{display:flex;align-items:center;gap:6px;padding:4px 14px;font-size:12px;color:var(--text-tertiary)}.typing-bubble-dots{display:flex;gap:3px}.typing-bubble-dots span{width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-bubble-dots span:nth-child(2){animation-delay:.2s}.typing-bubble-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}.typing-bubble-text{font-size:12px;color:var(--text-tertiary)}.unread-divider{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:11px;font-weight:600;color:var(--danger);text-transform:uppercase;letter-spacing:.5px}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:var(--danger);opacity:.5}.unread-divider-label{flex-shrink:0;padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--danger)}.status-online,.bot-online-dot{background:var(--success)!important}.status-idle{background:var(--warning)!important}.status-dnd{background:var(--danger)!important}.status-offline,.status-invisible{background:var(--text-tertiary)!important}.notification-badge,.channel-badge,.unread-badge{min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:#fff;font-size:11px;font-weight:600;border-radius:var(--radius-full)}.message-edit{margin-top:4px}.message-edit textarea{width:100%;min-height:40px;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;resize:none}.edit-actions{display:flex;gap:6px;margin-top:6px}.edit-actions button{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;border-radius:var(--radius-sm);transition:background .12s ease;color:var(--text-secondary)}.edit-actions button:first-child{background:var(--accent);color:var(--accent-text)}.edit-actions button:last-child{background:var(--bg-tertiary)}.edit-actions button:hover{opacity:.9}.swipe-indicator{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--text-secondary)}.swipe-reply{left:-44px;color:var(--accent)}.swipe-action{right:-44px;color:var(--danger)}.message-menu-btn{position:absolute;top:0;right:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-sm)}.message-menu-btn:hover{color:var(--text-primary);background:var(--hover-bg)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center;color:var(--text-tertiary)}.empty-state svg{opacity:.4;color:var(--text-tertiary)}.empty-state h3{font-size:16px;font-weight:600;color:var(--text-primary)}.empty-state p{font-size:13px;max-width:260px;line-height:1.5}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:20px;color:var(--text-tertiary)}.login-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-primary)}.login-card{width:100%;max-width:380px;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);overflow:hidden}.login-btn{width:100%;padding:12px 24px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:600;border-radius:var(--radius-md);transition:all .15s ease}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{padding:10px;margin-bottom:14px;background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--radius-md);color:var(--danger);font-size:13px;text-align:center}.notif-time{font-size:11px;color:var(--text-tertiary);flex-shrink:0}.ntfy-instructions{font-size:13px;color:var(--text-secondary);line-height:1.5}.offline-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--danger);color:#fff;font-size:13px;font-weight:500}.offline-indicator.syncing{background:var(--warning);color:#000}.pending-badge{padding:2px 8px;background:#fff3;border-radius:var(--radius-full);font-size:11px;font-weight:600}.exit-dialog-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;z-index:var(--z-modal);padding:20px}.exit-dialog{width:100%;max-width:340px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:24px;text-align:center}.exit-dialog-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 16px;background:var(--danger-bg);border-radius:50%;color:var(--danger)}.exit-dialog h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.exit-dialog p{font-size:14px;color:var(--text-secondary);margin-bottom:20px}.exit-dialog-buttons{display:flex;gap:8px;justify-content:center}.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000008c;z-index:var(--z-modal);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.lightbox-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;z-index:calc(var(--z-modal) + 5);cursor:pointer}.lightbox-overlay img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-md)}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:12px;color:var(--text-tertiary)}.status-bar .connection-status{display:flex;align-items:center;gap:6px}.latency-indicator{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-tertiary)}.latency-indicator.good{color:var(--success)}.latency-indicator.warning{color:var(--warning)}.latency-indicator.bad{color:var(--danger)}.back-to-latest-btn{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .12s ease;z-index:10}.back-to-latest-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.date-separator{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.date-separator:before,.date-separator:after{content:"";flex:1;height:1px;background:var(--border-color)}.system-message{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:13px;color:var(--text-tertiary);font-style:italic}.system-message svg{flex-shrink:0;opacity:.5}.mention-suggestions{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.mention-header{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);border-bottom:1px solid var(--border-color)}.mention-item{display:flex;align-items:center;gap:10px;padding:6px 12px;cursor:pointer;transition:background .1s ease}.mention-item:hover,.mention-item.selected{background:var(--hover-bg)}.mention-item.selected{background:var(--active-bg)}.mention-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.mention-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.mention-name{font-size:13px;font-weight:500;color:var(--text-primary)}.mention-username{font-size:12px;color:var(--text-tertiary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.files-preview{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;margin-bottom:8px;background:var(--bg-tertiary);border-radius:var(--radius-md);max-height:180px;overflow-y:auto}.file-preview-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-secondary);border-radius:var(--radius-sm);min-width:140px;max-width:220px;border:1px solid var(--border-color)}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent);color:inherit}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.md-list{margin:4px 0;padding-left:20px}.md-list-item{margin:2px 0;color:var(--text-primary)}.md-header{margin:8px 0 4px;font-weight:700;color:var(--text-primary)}.settings-footer{padding:12px 20px;border-top:1px solid var(--border-color);text-align:center}.settings-footer span{font-size:11px;color:var(--text-tertiary)}@media(max-width:480px){.server-menu-panel{left:8px;right:8px;width:auto;max-height:70vh}.header{padding:0 8px;gap:6px}.message-group{gap:8px;padding:4px 8px}.message-input-container{padding:8px}.settings-modal{max-width:100%;max-height:100vh;border-radius:0}.attachment-image{max-width:280px;max-height:250px}.video-embed,.link-preview{max-width:100%}.reply-preview{max-width:160px}.context-menu{min-width:160px}}@media(min-width:768px){.message-group:hover{background:var(--hover-bg);border-radius:var(--radius-sm)}.message-time{opacity:0;transition:opacity .12s ease}.message-group:hover .message-time{opacity:1}}.error-boundary-fallback{display:flex;align-items:center;justify-content:center;min-height:120px;padding:24px}.error-boundary-content{text-align:center;max-width:320px}.error-boundary-icon{color:var(--danger);margin-bottom:12px}.error-boundary-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.error-boundary-message{font-size:13px;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}.error-boundary-details{font-size:11px;font-family:var(--font-mono);color:var(--danger);background:var(--danger-bg);padding:8px 12px;border-radius:var(--radius-md);margin:0 0 16px;word-break:break-word;white-space:pre-wrap;text-align:left}.error-retry-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:var(--accent-text, #fff);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}.error-retry-btn:hover{opacity:.9}.error-boundary-minimal{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--text-tertiary);font-size:13px}.error-retry-btn-sm{padding:4px 10px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:background .15s}.error-retry-btn-sm:hover{background:var(--hover-bg)}.quick-switch-overlay{z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:min(20vh,120px)}.quick-switch-modal{width:min(520px,90vw);max-height:400px;background:var(--bg-elevated, var(--bg-secondary));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.quick-switch-input-wrapper{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-color);color:var(--text-tertiary)}.quick-switch-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:15px;font-family:inherit}.quick-switch-input::placeholder{color:var(--text-tertiary)}.quick-switch-hint{font-size:11px;color:var(--text-tertiary);flex-shrink:0}.quick-switch-hint kbd{display:inline-block;padding:1px 5px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;font-size:10px;font-family:inherit;color:var(--text-secondary)}.quick-switch-results{flex:1;overflow-y:auto;padding:4px;max-height:300px}.quick-switch-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:var(--text-tertiary);font-size:13px}.quick-switch-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background .1s}.quick-switch-item:hover,.quick-switch-item.selected{background:var(--hover-bg);color:var(--text-primary)}.qs-channel-icon{color:var(--text-tertiary);flex-shrink:0}.qs-channel-name{font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qs-server-name{font-size:12px;color:var(--text-tertiary);flex-shrink:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-switch-footer{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--border-color);font-size:11px;color:var(--text-tertiary)}.quick-switch-footer kbd{display:inline-block;padding:1px 4px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;font-size:10px;font-family:inherit;color:var(--text-secondary);margin-right:3px}.shortcuts-modal{width:min(440px,90vw);background:var(--bg-elevated, var(--bg-secondary));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);overflow:hidden}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.shortcuts-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.shortcuts-content{padding:12px 20px 20px;max-height:60vh;overflow-y:auto}.shortcuts-group{margin-bottom:16px}.shortcuts-group:last-child{margin-bottom:0}.shortcuts-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-tertiary);margin:0 0 8px;padding:0}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.shortcut-description{font-size:13px;color:var(--text-secondary)}.shortcut-keys{display:flex;align-items:center;gap:2px;flex-shrink:0}.shortcut-keys kbd{display:inline-block;padding:2px 7px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:11px;font-family:inherit;color:var(--text-secondary);min-width:22px;text-align:center;line-height:1.4}.shortcut-plus{font-size:10px;color:var(--text-tertiary);margin:0 1px}.server-info-modal{width:min(420px,90vw);background:var(--bg-elevated, var(--bg-secondary));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);overflow:hidden;max-height:80vh;overflow-y:auto}.server-info-banner{display:flex;align-items:center;gap:14px;padding:20px;background:color-mix(in srgb,var(--accent) 8%,var(--bg-secondary));border-bottom:1px solid var(--border-color);position:relative}.server-info-icon{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.server-info-icon-placeholder{width:56px;height:56px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-text, #fff);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0}.server-info-title-block{flex:1;min-width:0}.server-info-name{font-size:18px;font-weight:700;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-info-description{font-size:13px;color:var(--text-secondary);margin:4px 0 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.server-info-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color .15s,background .15s}.server-info-close:hover{color:var(--text-primary);background:var(--hover-bg)}.server-info-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-color);border-bottom:1px solid var(--border-color)}.server-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;background:var(--bg-elevated, var(--bg-secondary))}.server-stat-value{font-size:18px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:5px}.server-stat-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px}.server-info-details{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.server-info-detail-row{display:flex;align-items:flex-start;gap:12px;color:var(--text-tertiary)}.server-info-detail-row svg{margin-top:2px;flex-shrink:0}.server-info-detail-content{display:flex;flex-direction:column;gap:1px}.server-info-detail-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.server-info-detail-value{font-size:13px;color:var(--text-primary)}.server-info-detail-sub{color:var(--text-tertiary);font-size:12px}.server-info-id{font-family:var(--font-mono);font-size:12px;color:var(--text-tertiary);-webkit-user-select:all;user-select:all}.server-info-section{padding:0 20px 16px}.server-info-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin:0 0 8px}.server-info-owner{display:flex;align-items:center;gap:10px}.server-info-owner-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.server-info-owner-avatar.placeholder{background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.server-info-owner-name{font-size:14px;font-weight:500;color:var(--text-primary)}.server-menu-channel.has-unread .channel-name{font-weight:600;color:var(--text-primary)}.channel-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:10px;font-weight:700;line-height:1;margin-left:auto;flex-shrink:0}.profile-status-row{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px}.profile-status-text{color:var(--text-secondary)}.profile-activity{color:var(--text-tertiary);font-size:12px}.profile-activity:before{content:"—";margin:0 6px;color:var(--text-tertiary)}.profile-presence-dot{position:absolute;bottom:-2px;right:-2px;width:16px;height:16px;border-radius:50%;border:3px solid var(--bg-secondary)}.profile-presence-dot.online{background:var(--success)}.profile-presence-dot.idle{background:var(--warning)}.profile-presence-dot.dnd{background:var(--danger)}.profile-presence-dot.offline{background:var(--text-tertiary)}.profile-avatar-container{position:relative;display:inline-block}.profile-roles{flex-direction:column}.profile-roles-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.profile-role-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:11px;color:var(--text-secondary);white-space:nowrap}.profile-role-badge.more{color:var(--text-tertiary)}.profile-notes-section{padding:12px 16px;border-top:1px solid var(--border-color)}.profile-notes-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:8px}.note-saved-indicator{color:var(--success);font-weight:500;text-transform:none;letter-spacing:0;margin-left:auto;font-size:11px}.profile-note-display{display:block;width:100%;padding:8px 10px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;cursor:pointer;min-height:36px;transition:border-color .15s}.profile-note-display:hover{border-color:var(--border-color)}.profile-note-text{font-size:13px;color:var(--text-secondary);line-height:1.4;white-space:pre-wrap;word-break:break-word}.profile-note-placeholder{font-size:13px;color:var(--text-tertiary);font-style:italic}.profile-note-edit{display:flex;flex-direction:column;gap:8px}.profile-note-textarea{width:100%;min-height:60px;max-height:120px;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:inherit;resize:vertical;outline:none;line-height:1.4}.profile-note-actions{display:flex;justify-content:flex-end;gap:6px}.btn-sm{padding:4px 12px;font-size:12px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,opacity .15s;border:none}.btn-primary{background:var(--accent);color:var(--accent-text, #fff)}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--hover-bg)}.header-reconnecting{display:inline-flex;align-items:center;margin-left:6px;color:var(--warning);animation:spin 1s linear infinite}.header-server-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--text-tertiary);font-size:inherit;font-family:inherit;transition:color .15s}.header-server-btn:hover{color:var(--text-secondary);text-decoration:underline}.reconnecting-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;background:color-mix(in srgb,var(--warning) 15%,var(--bg-primary));color:var(--warning);font-size:12px;font-weight:500;border-bottom:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}.reconnecting-banner svg{animation:spin 1s linear infinite}.file-catbox-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius-full);font-size:10px;font-weight:600;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.attachment-image-wrapper{position:relative;display:inline-block;max-width:100%;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.image-shimmer{position:absolute;top:0;left:0;width:100%;height:100%;min-height:80px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--bg-secondary) 25%,color-mix(in srgb,var(--bg-tertiary) 50%,var(--bg-secondary)) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.resolved-media-loading{margin:4px 0}.resolved-media-loading .image-shimmer{position:relative}.attachment-image-error{display:flex;align-items:center;justify-content:center;gap:8px;min-height:80px;padding:16px;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-muted);font-size:13px;border:1px dashed var(--border-subtle)}.catbox-embed{display:inline-block;max-width:100%;margin-top:4px}.catbox-embed .attachment-image-wrapper,.catbox-embed .attachment-video{max-width:100%}.catbox-file-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--accent);text-decoration:none;font-size:13px;transition:background .15s ease}.catbox-file-link:hover{background:var(--bg-tertiary);text-decoration:underline}.catbox-file-link .catbox-label{color:var(--text-muted);font-size:11px;margin-left:4px}.file-preview-item .upload-progress-bar{position:absolute;bottom:0;left:0;height:3px;background:var(--accent);border-radius:0 0 var(--radius-md) var(--radius-md);transition:width .2s ease}.file-preview-item{position:relative;overflow:hidden}.file-preview-item .upload-progress-text{position:absolute;bottom:6px;right:6px;font-size:10px;font-weight:700;color:#fff;background:#0009;padding:1px 5px;border-radius:var(--radius-full)}.upload-progress-banner{padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border-subtle);overflow:hidden}.upload-progress-info{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:var(--text-secondary)}.upload-progress-info svg{color:var(--accent);flex-shrink:0}.upload-progress-filename{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress-percent{font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.upload-progress-track{width:100%;height:4px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.upload-progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width .15s ease}.mark-all-read-btn{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:4px 10px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0}.mark-all-read-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-tertiary));border-color:var(--accent)}.mark-all-read-btn:active{transform:scale(.96)}.mark-all-read-btn svg{flex-shrink:0}.server-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;color:#fff;background:var(--danger);border-radius:var(--radius-full);flex-shrink:0;margin-right:4px;font-variant-numeric:tabular-nums;line-height:1}
