Игорь Надеин 8159c6f472 feat: Replace Bootstrap buttons with custom button system
### Custom Button System Implementation

Created modern button system to replace Bootstrap buttons:

- ✅ Created core/_buttons-custom.scss (550+ lines)
- ✅ CSS Custom Properties for easy customization
- ✅ 8 color variants (primary, secondary, success, danger, warning, info, light, dark)
- ✅ Outline and Ghost variants
- ✅ 4 sizes (sm, md, lg, xl)
- ✅ Special variants (block, icon, circle, link)
- ✅ Loading state with spinner animation
- ✅ Button groups support
- ✅ Modern animations (hover, active, focus)

### Template Migration

Migrated 65 HTML templates using automated Python script:
- Replaced .btn → .button
- Replaced .btn-primary → .button--primary
- Replaced .btn-outline-* → .button--outline button--*
- Replaced size classes .btn-sm → .button--sm
- Total changes: 354 → 347 button usages

### Results

- app.css: 137 KB → 148 KB (+11 KB for custom buttons)
- Templates changed: 65 files
- Remaining .btn classes: 133 (mostly btn-close for modals)
- New .button classes: 347

### Backward Compatibility

Kept @extend rules in _buttons-custom.scss for gradual migration.
Can be removed after complete migration.

Next step: Remove Bootstrap button imports from custom-bootstrap.scss
2026-01-15 14:23:44 +03:00

2 lines
148 KiB
CSS

:root{--app-primary: #0d6efd;--app-success: #198754;--app-danger: #dc3545;--app-warning: #ffc107;--app-info: #0dcaf0;--bg-light: #f8f9fa;--bg-dark: #212529;--bg-card: #ffffff;--text-primary: #212529;--text-secondary: #6c757d;--text-muted: #adb5bd;--navbar-h: 60px;--sidebar-w: 200px;--rightbar-w: 350px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-full: 50%;--feed-radius: var(--radius-xl);--card-radius: var(--radius-lg);--button-radius: var(--radius-md);--input-radius: var(--radius-md);--badge-radius: 999px;--space-0: 0;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.5rem;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-3);--space-lg: var(--space-4);--space-xl: var(--space-5);--gap-component: var(--space-3);--gap-section: var(--space-4);--card-padding: var(--space-2);--card-padding-sm: var(--space-1);--card-padding-lg: var(--space-3);--margin-section: var(--space-3);--margin-block: var(--space-4);--layout-gap: var(--space-2);--layout-padding-y: var(--space-3);--layout-padding-x: 0;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-3);--spacing-lg: var(--space-4);--spacing-xl: var(--space-5);--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.12);--shadow-xl: 0 8px 32px rgba(0, 0, 0, 0.16);--feed-shadow: var(--shadow-md);--feed-shadow-hover: var(--shadow-lg);--card-shadow: var(--shadow-sm);--dropdown-shadow: var(--shadow-lg);--modal-shadow: var(--shadow-xl);--feed-gap: 0.75rem;--ios-overlay-bg: rgba(0, 0, 0, 0.4);--ios-sheet-radius: 24px 24px 0 0;--ios-grip-w: 36px;--ios-grip-h: 5px;--ios-search-radius: var(--radius-md);--avatar-xs: 28px;--avatar-sm: 36px;--avatar-md: 44px;--avatar-lg: 64px;--avatar-xl: 96px;--calendar-day-size: 1.6rem;--calendar-event-radius: 6px;--calendar-wrap-radius: 10px;--transition-fast: 0.15s ease;--transition-base: 0.2s ease;--transition-slow: 0.3s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--border-width: 1px;--border-color: #dee2e6;--border-radius: var(--radius-md)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.radius-sm{border-radius:var(--radius-sm)}.radius-md{border-radius:var(--radius-md)}.radius-lg{border-radius:var(--radius-lg)}.radius-xl{border-radius:var(--radius-xl)}.radius-full{border-radius:var(--radius-full)}.transition-fast{transition:all var(--transition-fast)}.transition-base{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}@media(max-width: 767.98px){:root{--navbar-h: 90px}}.btn-icon{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--bs-border-color);border-radius:var(--button-radius, 10px);background:rgba(0,0,0,0);color:var(--bs-body-color);cursor:pointer;transition:all var(--transition-fast, 0.15s)}.btn-icon:hover{background:var(--bs-tertiary-bg);border-color:var(--bs-border-color)}.btn-icon--primary{color:var(--bs-primary)}.btn-icon--danger{color:var(--bs-danger)}.btn-icon--success{color:var(--bs-success)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.badge-acked{background:color-mix(in srgb, var(--bs-success) 20%, transparent);color:var(--bs-success);border:1px solid color-mix(in srgb, var(--bs-success) 30%, transparent);padding:.28rem .55rem;border-radius:var(--badge-radius, 999px);font-size:.8rem;font-weight:500}[data-bs-theme=dark] .badge-acked{background:color-mix(in srgb, var(--bs-success) 15%, #000);color:color-mix(in srgb, var(--bs-success) 80%, #fff);border-color:color-mix(in srgb, var(--bs-success) 25%, transparent)}.badge-status{padding:var(--space-1);border-radius:var(--badge-radius, 999px);font-size:.75rem;font-weight:600;border:1px solid}.badge-status--pending{background:color-mix(in srgb, var(--bs-warning) 15%, transparent);color:var(--bs-warning);border-color:color-mix(in srgb, var(--bs-warning) 30%, transparent)}.badge-status--approved{background:color-mix(in srgb, var(--bs-success) 15%, transparent);color:var(--bs-success);border-color:color-mix(in srgb, var(--bs-success) 30%, transparent)}.badge-status--rejected{background:color-mix(in srgb, var(--bs-danger) 15%, transparent);color:var(--bs-danger);border-color:color-mix(in srgb, var(--bs-danger) 30%, transparent)}.chat-pinned-badge{position:absolute;background:var(--bs-warning);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1;width:22px;height:22px;top:6px;right:6px;font-size:.75rem}.chat-pinned-badge--sm{width:20px;height:20px;top:4px;right:4px;font-size:.7rem}.chat-pinned-badge--lg{width:24px;height:24px;top:8px;right:8px;font-size:.8rem}.avatar{border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--bs-tertiary-bg);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar i{color:var(--bs-secondary-color)}.avatar-xs{width:var(--avatar-xs, 28px);height:var(--avatar-xs, 28px)}.avatar-sm{width:var(--avatar-sm, 36px);height:var(--avatar-sm, 36px)}.avatar-md{width:var(--avatar-md, 44px);height:var(--avatar-md, 44px)}.avatar-lg{width:var(--avatar-lg, 64px);height:var(--avatar-lg, 64px)}.avatar-xl{width:var(--avatar-xl, 96px);height:var(--avatar-xl, 96px)}.card-title{font-weight:700;color:var(--bs-body-color);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-subtitle{font-size:.82rem;color:var(--bs-secondary-color);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-subtitle a{color:inherit;text-decoration:none}.card-subtitle a:hover{color:var(--bs-primary)}.chat-avatar,.avatar{border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.chat-avatar img,.avatar img{width:100%;height:100%;object-fit:cover;display:block}.chat-avatar,.avatar{width:40px;height:40px}.chat-avatar--sm,.avatar--sm{width:32px;height:32px}.chat-avatar--lg,.avatar--lg{width:44px;height:44px}.chat-avatar--xl,.avatar--xl{width:48px;height:48px}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--badge-radius, 999px);background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);font-size:.82rem;color:var(--bs-body-color)}.chip-remove{cursor:pointer;color:var(--bs-danger);font-weight:700;line-height:1}.chip-remove:hover{color:color-mix(in srgb, var(--bs-danger) 80%, #000)}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.text-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.custom-scrollbar::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--bs-border-color) 70%, transparent);border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--bs-border-color)}.btn-circle{border-radius:50% !important;padding:0 !important;display:inline-flex !important;align-items:center;justify-content:center;flex-shrink:0;aspect-ratio:1/1;overflow:hidden;line-height:1}.btn-circle i{line-height:1;display:inline-block}.btn-circle.btn-sm,.btn-circle-sm{width:32px !important;height:32px !important;min-width:32px !important;max-width:32px !important;min-height:32px !important;max-height:32px !important;font-size:.875rem}.btn-circle:not(.btn-sm):not(.btn-lg),.btn-circle-md{width:36px !important;height:36px !important;min-width:36px !important;max-width:36px !important;min-height:36px !important;max-height:36px !important;font-size:1rem}.btn-circle.btn-lg,.btn-circle-lg{width:44px !important;height:44px !important;min-width:44px !important;max-width:44px !important;min-height:44px !important;max-height:44px !important;font-size:1.25rem}.btn-icon{display:inline-flex;align-items:center;gap:var(--space-2)}.btn-icon i{line-height:1}@media(max-width: 767.98px){.btn-icon .btn-text{display:none}.btn-icon:not(.btn-circle){border-radius:50% !important;padding:var(--space-2) !important;width:36px;height:36px;justify-content:center}}.btn-ghost{background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);color:var(--bs-body-color);transition:all .2s ease}.btn-ghost:hover{background:color-mix(in srgb, var(--bs-body-color), transparent 90%);border-color:var(--bs-border-color);color:var(--bs-body-color)}.btn-ghost:active{background:color-mix(in srgb, var(--bs-body-color), transparent 85%)}.btn-pill{border-radius:999px !important}.btn-circle[aria-expanded=true],.btn-circle.active{background-color:var(--bs-primary) !important;border-color:var(--bs-primary) !important;color:#fff !important}.btn-circle[aria-expanded=true]{transform:rotate(180deg);transition:transform .3s ease}.btn-circle[aria-expanded=false]{transform:rotate(0deg);transition:transform .3s ease}.btn-circle-group{display:flex;gap:var(--space-2);align-items:center}.btn-circle-group .btn-circle{margin:0}@media(prefers-color-scheme: dark){.btn-ghost{color:var(--bs-body-color)}.btn-ghost:hover{background:color-mix(in srgb, var(--bs-body-color), transparent 92%)}}:root{--button-primary: var(--bs-primary, #0d6efd);--button-secondary: var(--bs-secondary, #6c757d);--button-success: var(--bs-success, #198754);--button-danger: var(--bs-danger, #dc3545);--button-warning: var(--bs-warning, #ffc107);--button-info: var(--bs-info, #0dcaf0);--button-light: var(--bs-light, #f8f9fa);--button-dark: var(--bs-dark, #212529);--button-padding-y: 0.5rem;--button-padding-x: 1rem;--button-font-size: 1rem;--button-border-radius: 0.375rem;--button-min-width: 80px;--button-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);--button-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);--button-shadow-hover: 0 4px 8px rgba(0, 0, 0, 0.15);--button-shadow-active: 0 1px 2px rgba(0, 0, 0, 0.1)}.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:var(--button-padding-y) var(--button-padding-x);min-width:var(--button-min-width);font-family:inherit;font-size:var(--button-font-size);font-weight:500;line-height:1.5;text-align:center;text-decoration:none;white-space:nowrap;user-select:none;border:1px solid rgba(0,0,0,0);border-radius:var(--button-border-radius);background:var(--button-primary);color:#fff;box-shadow:var(--button-shadow);cursor:pointer;transition:var(--button-transition)}.button:hover,.btn:hover{transform:translateY(-1px);box-shadow:var(--button-shadow-hover);filter:brightness(1.1)}.button:active,.btn:active{transform:translateY(0);box-shadow:var(--button-shadow-active);filter:brightness(0.95)}.button:focus,.btn:focus,.button:focus-visible,.btn:focus-visible{outline:2px solid var(--button-primary);outline-offset:2px}.button:disabled,.btn:disabled,.button.disabled,.disabled.btn{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:none}.button i,.btn i,.button svg,.btn svg{font-size:1.2em;flex-shrink:0}.button--primary,.btn-outline-primary,.btn-primary{background:var(--button-primary);border-color:var(--button-primary);color:#fff}.button--primary:focus-visible,.btn-outline-primary:focus-visible,.btn-primary:focus-visible{outline-color:var(--button-primary)}.button--secondary,.btn-outline-secondary,.btn-secondary{background:var(--button-secondary);border-color:var(--button-secondary);color:#fff}.button--secondary:focus-visible,.btn-outline-secondary:focus-visible,.btn-secondary:focus-visible{outline-color:var(--button-secondary)}.button--success,.btn-outline-success,.btn-success{background:var(--button-success);border-color:var(--button-success);color:#fff}.button--success:focus-visible,.btn-outline-success:focus-visible,.btn-success:focus-visible{outline-color:var(--button-success)}.button--danger,.btn-outline-danger,.btn-danger{background:var(--button-danger);border-color:var(--button-danger);color:#fff}.button--danger:focus-visible,.btn-outline-danger:focus-visible,.btn-danger:focus-visible{outline-color:var(--button-danger)}.button--warning,.btn-warning{background:var(--button-warning);border-color:var(--button-warning);color:#212529}.button--warning:focus-visible,.btn-warning:focus-visible{outline-color:var(--button-warning)}.button--info,.btn-info{background:var(--button-info);border-color:var(--button-info);color:#212529}.button--info:focus-visible,.btn-info:focus-visible{outline-color:var(--button-info)}.button--light,.btn-light{background:var(--button-light);border-color:var(--button-light);color:#212529}.button--light:focus-visible,.btn-light:focus-visible{outline-color:var(--button-light)}.button--dark,.btn-dark{background:var(--button-dark);border-color:var(--button-dark);color:#fff}.button--dark:focus-visible,.btn-dark:focus-visible{outline-color:var(--button-dark)}.button--outline,.btn-outline-danger,.btn-outline-success,.btn-outline-secondary,.btn-outline-primary{background:rgba(0,0,0,0);box-shadow:none}.button--outline:hover,.btn-outline-danger:hover,.btn-outline-success:hover,.btn-outline-secondary:hover,.btn-outline-primary:hover{background:var(--button-primary);color:#fff}.button--outline.button--primary,.button--primary.btn-outline-danger,.button--primary.btn-outline-success,.button--primary.btn-outline-secondary,.btn-outline-primary,.button--outline.btn-primary,.btn-primary.btn-outline-danger,.btn-primary.btn-outline-success,.btn-primary.btn-outline-secondary{border-color:var(--button-primary);color:var(--button-primary)}.button--outline.button--secondary,.button--secondary.btn-outline-danger,.button--secondary.btn-outline-success,.btn-outline-secondary,.button--secondary.btn-outline-primary,.button--outline.btn-secondary,.btn-secondary.btn-outline-danger,.btn-secondary.btn-outline-success,.btn-secondary.btn-outline-primary{border-color:var(--button-secondary);color:var(--button-secondary)}.button--outline.button--secondary:hover,.button--secondary.btn-outline-danger:hover,.button--secondary.btn-outline-success:hover,.btn-outline-secondary:hover,.button--secondary.btn-outline-primary:hover,.button--outline.btn-secondary:hover,.btn-secondary.btn-outline-danger:hover,.btn-secondary.btn-outline-success:hover,.btn-secondary.btn-outline-primary:hover{background:var(--button-secondary)}.button--outline.button--success,.button--success.btn-outline-danger,.btn-outline-success,.button--success.btn-outline-secondary,.button--success.btn-outline-primary,.button--outline.btn-success,.btn-success.btn-outline-danger,.btn-success.btn-outline-secondary,.btn-success.btn-outline-primary{border-color:var(--button-success);color:var(--button-success)}.button--outline.button--success:hover,.button--success.btn-outline-danger:hover,.btn-outline-success:hover,.button--success.btn-outline-secondary:hover,.button--success.btn-outline-primary:hover,.button--outline.btn-success:hover,.btn-success.btn-outline-danger:hover,.btn-success.btn-outline-secondary:hover,.btn-success.btn-outline-primary:hover{background:var(--button-success)}.button--outline.button--danger,.btn-outline-danger,.button--danger.btn-outline-success,.button--danger.btn-outline-secondary,.button--danger.btn-outline-primary,.button--outline.btn-danger,.btn-danger.btn-outline-success,.btn-danger.btn-outline-secondary,.btn-danger.btn-outline-primary{border-color:var(--button-danger);color:var(--button-danger)}.button--outline.button--danger:hover,.btn-outline-danger:hover,.button--danger.btn-outline-success:hover,.button--danger.btn-outline-secondary:hover,.button--danger.btn-outline-primary:hover,.button--outline.btn-danger:hover,.btn-danger.btn-outline-success:hover,.btn-danger.btn-outline-secondary:hover,.btn-danger.btn-outline-primary:hover{background:var(--button-danger)}.button--outline.button--warning,.button--warning.btn-outline-danger,.button--warning.btn-outline-success,.button--warning.btn-outline-secondary,.button--warning.btn-outline-primary,.button--outline.btn-warning,.btn-warning.btn-outline-danger,.btn-warning.btn-outline-success,.btn-warning.btn-outline-secondary,.btn-warning.btn-outline-primary{border-color:var(--button-warning);color:var(--button-warning)}.button--outline.button--warning:hover,.button--warning.btn-outline-danger:hover,.button--warning.btn-outline-success:hover,.button--warning.btn-outline-secondary:hover,.button--warning.btn-outline-primary:hover,.button--outline.btn-warning:hover,.btn-warning.btn-outline-danger:hover,.btn-warning.btn-outline-success:hover,.btn-warning.btn-outline-secondary:hover,.btn-warning.btn-outline-primary:hover{background:var(--button-warning);color:#212529}.button--outline.button--info,.button--info.btn-outline-danger,.button--info.btn-outline-success,.button--info.btn-outline-secondary,.button--info.btn-outline-primary,.button--outline.btn-info,.btn-info.btn-outline-danger,.btn-info.btn-outline-success,.btn-info.btn-outline-secondary,.btn-info.btn-outline-primary{border-color:var(--button-info);color:var(--button-info)}.button--outline.button--info:hover,.button--info.btn-outline-danger:hover,.button--info.btn-outline-success:hover,.button--info.btn-outline-secondary:hover,.button--info.btn-outline-primary:hover,.button--outline.btn-info:hover,.btn-info.btn-outline-danger:hover,.btn-info.btn-outline-success:hover,.btn-info.btn-outline-secondary:hover,.btn-info.btn-outline-primary:hover{background:var(--button-info);color:#212529}.button--ghost{background:rgba(0,0,0,0);border-color:rgba(0,0,0,0);box-shadow:none}.button--ghost:hover{background:rgba(0,0,0,.05)}.button--ghost.button--primary,.button--ghost.btn-outline-primary,.button--ghost.btn-primary{color:var(--button-primary)}.button--ghost.button--secondary,.button--ghost.btn-outline-secondary,.button--ghost.btn-secondary{color:var(--button-secondary)}.button--ghost.button--success,.button--ghost.btn-outline-success,.button--ghost.btn-success{color:var(--button-success)}.button--ghost.button--danger,.button--ghost.btn-outline-danger,.button--ghost.btn-danger{color:var(--button-danger)}.button--sm,.btn-sm{--button-padding-y: 0.25rem;--button-padding-x: 0.5rem;--button-font-size: 0.875rem;--button-min-width: 60px}.button--lg,.btn-lg{--button-padding-y: 0.75rem;--button-padding-x: 1.5rem;--button-font-size: 1.125rem;--button-min-width: 100px}.button--xl{--button-padding-y: 1rem;--button-padding-x: 2rem;--button-font-size: 1.25rem;--button-min-width: 120px}.button--block,.btn-block{display:flex;width:100%;min-width:auto}.button--icon{min-width:auto;padding:var(--button-padding-y);aspect-ratio:1}.button--circle{min-width:auto;padding:var(--button-padding-y);aspect-ratio:1;border-radius:50%}.button--link{padding:0;min-width:auto;background:rgba(0,0,0,0);border:none;box-shadow:none;text-decoration:underline}.button--link:hover{transform:none;text-decoration:none}.button--link.button--primary,.button--link.btn-outline-primary,.button--link.btn-primary{color:var(--button-primary)}.button--link.button--danger,.button--link.btn-outline-danger,.button--link.btn-danger{color:var(--button-danger)}.button--loading{position:relative;color:rgba(0,0,0,0);pointer-events:none}.button--loading::after{content:"";position:absolute;width:1em;height:1em;top:50%;left:50%;margin-left:-0.5em;margin-top:-0.5em;border:2px solid currentColor;border-radius:50%;border-right-color:rgba(0,0,0,0);animation:button-spin .6s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}.button-group{display:inline-flex;gap:0}.button-group .button,.button-group .btn{border-radius:0}.button-group .button:first-child,.button-group .btn:first-child{border-top-left-radius:var(--button-border-radius);border-bottom-left-radius:var(--button-border-radius)}.button-group .button:last-child,.button-group .btn:last-child{border-top-right-radius:var(--button-border-radius);border-bottom-right-radius:var(--button-border-radius)}.button-group .button:not(:last-child),.button-group .btn:not(:last-child){border-right-width:0}.button-group--vertical{flex-direction:column}.button-group--vertical .button,.button-group--vertical .btn{width:100%}.button-group--vertical .button:first-child,.button-group--vertical .btn:first-child{border-radius:0;border-top-left-radius:var(--button-border-radius);border-top-right-radius:var(--button-border-radius)}.button-group--vertical .button:last-child,.button-group--vertical .btn:last-child{border-radius:0;border-bottom-left-radius:var(--button-border-radius);border-bottom-right-radius:var(--button-border-radius)}.button-group--vertical .button:not(:last-child),.button-group--vertical .btn:not(:last-child){border-right-width:1px;border-bottom-width:0}.badge,.badge-telegram{display:flex;align-items:center;justify-content:center;height:20px;min-width:20px;border-radius:10px;font-size:11px;font-weight:600;line-height:1;box-shadow:0 2px 4px rgba(0,0,0,.15)}.badge:hover,.badge-telegram:hover{box-shadow:0 3px 6px rgba(0,0,0,.2)}.badge,.badge-telegram{color:#fff;background:var(--bs-danger);transition:transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275);user-select:none;padding:0 6px}.badge:empty,.badge-telegram:empty{display:none}.badge[data-count="0"],[data-count="0"].badge-telegram{display:none}.badge--sm,.badge-telegram-sm{display:flex;align-items:center;justify-content:center;height:18px;min-width:18px;border-radius:9px;font-size:11px;font-weight:600;line-height:1;font-size:10px;padding:0 5px}.badge--lg,.badge-telegram-lg{display:flex;align-items:center;justify-content:center;height:24px;min-width:24px;border-radius:12px;font-size:11px;font-weight:600;line-height:1;font-size:12px;padding:0 7px}.badge--xl,.badge-telegram-xl{display:flex;align-items:center;justify-content:center;height:28px;min-width:28px;border-radius:14px;font-size:11px;font-weight:600;line-height:1;font-size:13px;padding:0 8px}.badge--primary{background:var(--bs-primary)}.badge--success{background:var(--bs-success)}.badge--warning{background:var(--bs-warning)}.badge--danger{background:var(--bs-danger)}.badge--info{background:var(--bs-info)}.badge--muted{background:var(--bs-secondary)}.badge--pulse{animation:badge-pulse 1.5s ease-in-out infinite}@keyframes badge-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.badge--absolute{position:absolute;top:-8px;right:-8px;z-index:10}.badge--corner{position:absolute;top:0;right:0;transform:translate(50%, -50%);z-index:10}.badge--dot{width:8px;height:8px;padding:0;min-width:8px}.badge--dot.badge--sm,.badge--dot.badge-telegram-sm{width:6px;height:6px}.badge--dot.badge--lg,.badge--dot.badge-telegram-lg{width:10px;height:10px}.badge--icon{display:inline-flex;align-items:center;gap:4px}.badge--icon i,.badge--icon svg{font-size:.9em}.card{backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 8px 32px 0 rgba(0,0,0,.37);--bs-card-bg: transparent;background:hsla(0,0%,100%,.1) !important;border:1px solid rgba(0,0,0,.08) !important;transition:all .3s ease;overflow:hidden}.card:hover{background:hsla(0,0%,100%,.15) !important;border-color:rgba(0,0,0,.12) !important;backdrop-filter:blur(12px) saturate(200%);-webkit-backdrop-filter:blur(12px) saturate(200%);box-shadow:0 12px 48px 0 rgba(0,0,0,.15);transform:translateY(-2px)}[data-bs-theme=dark] .card{--bs-card-bg: transparent;--bs-card-border-color: $glass-dark-border;background:rgba(0,0,0,0) !important;border-color:hsla(0,0%,100%,.1) !important}[data-bs-theme=dark] .card:hover{background:hsla(0,0%,100%,.03) !important;border-color:hsla(0,0%,100%,.15) !important}.card-list{display:flex;flex-direction:column;gap:0}.section-header{display:flex;align-items:center;gap:var(--gap-component, 1rem);margin-bottom:var(--space-3, 0.75rem)}.section-header .title{font-weight:800;letter-spacing:.2px;margin:0}.card-header{display:flex;align-items:center;gap:var(--gap-component, 1rem);padding:var(--card-padding, 1rem);padding-bottom:var(--space-1, 0.25rem);background:rgba(0,0,0,0);border-bottom:none}.card-icon{width:42px;height:42px;border-radius:50%;overflow:hidden;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);background:var(--bs-tertiary-bg);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.card-icon img{width:100%;height:100%;object-fit:cover;display:block}.card-meta{line-height:1.2;flex:1;min-width:0}.card-title{font-weight:700;color:var(--bs-body-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-bottom:0}.card-subtitle{font-size:.82rem;color:var(--bs-secondary-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-bottom:0}.card-body{padding:var(--space-1, 0.25rem) var(--card-padding, 1rem);padding-bottom:var(--space-1, 0.25rem);position:relative}.card-actions{display:flex;align-items:center;gap:var(--space-1, 0.25rem);padding:var(--card-padding, 1rem);padding-top:var(--space-2, 0.5rem);border-top:1px solid var(--bs-border-color);position:relative;z-index:1}.card-actions .btn.active,.card-actions .btn.is-liked,.card-actions button.active,.card-actions button.is-liked{color:var(--bs-primary) !important;font-weight:600}.card.compact .card-header{padding:var(--space-1, 0.25rem) var(--card-padding-sm, 0.5rem)}.card.compact .card-body{padding:var(--space-1, 0.25rem) var(--card-padding-sm, 0.5rem)}.card.compact .card-icon{width:32px;height:32px}.card.borderless{border:none;box-shadow:none !important;border-radius:0;border-bottom:1px solid var(--bs-border-color)}.card.borderless:hover{transform:none;box-shadow:none !important;background:var(--bs-tertiary-bg)}.card.highlighted{border-left:3px solid var(--bs-primary);background:color-mix(in srgb, var(--bs-primary), transparent 95%)}@media(max-width: 767.98px){.section-header{gap:var(--space-2, 0.5rem);flex-wrap:wrap}.card-header{padding:var(--space-2, 0.5rem);padding-bottom:var(--space-1, 0.25rem)}.card-icon{width:36px;height:36px}.card-actions{padding:var(--space-2, 0.5rem)}}.btn{background:rgba(0,0,0,0) !important;border:none !important;color:var(--bs-secondary-color);font-weight:500;transition-property:color;transition-duration:.15s ease;transition-timing-function:ease}.btn:hover:not(:disabled){color:var(--bs-body-color)}.btn:active:not(:disabled){color:var(--bs-body-color)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff !important;background:rgba(13,110,253,.7) !important}.btn-primary:hover:not(:disabled){background:rgba(13,110,253,.85) !important;box-shadow:0 4px 16px rgba(13,110,253,.3)}.btn-primary:active:not(:disabled){background:rgba(13,110,253,.95) !important}.btn-secondary,.btn-outline-primary,.btn-outline-secondary,.btn-ghost{background:rgba(0,0,0,0) !important;color:var(--bs-secondary-color)}.btn-secondary:hover:not(:disabled),.btn-outline-primary:hover:not(:disabled),.btn-outline-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:rgba(0,0,0,0) !important;color:var(--bs-body-color)}.btn-secondary:active:not(:disabled),.btn-outline-primary:active:not(:disabled),.btn-outline-secondary:active:not(:disabled),.btn-ghost:active:not(:disabled){background:rgba(0,0,0,0) !important}.btn-outline-primary{color:var(--bs-primary)}.btn-outline-primary:hover:not(:disabled){color:var(--bs-primary);background:rgba(0,0,0,0) !important}[data-bs-theme=dark] .btn:hover:not(:disabled),[data-bs-theme=dark] .btn:active:not(:disabled){background:rgba(0,0,0,0) !important}[data-bs-theme=dark] .btn-primary{background:rgba(13,110,253,.6) !important}[data-bs-theme=dark] .btn-primary:hover:not(:disabled){background:rgba(13,110,253,.75) !important}[data-bs-theme=dark] .btn-primary:active:not(:disabled){background:rgba(13,110,253,.85) !important}[data-bs-theme=dark] .btn-secondary:hover:not(:disabled),[data-bs-theme=dark] .btn-secondary:active:not(:disabled),[data-bs-theme=dark] .btn-outline-primary:hover:not(:disabled),[data-bs-theme=dark] .btn-outline-primary:active:not(:disabled),[data-bs-theme=dark] .btn-outline-secondary:hover:not(:disabled),[data-bs-theme=dark] .btn-outline-secondary:active:not(:disabled),[data-bs-theme=dark] .btn-ghost:hover:not(:disabled),[data-bs-theme=dark] .btn-ghost:active:not(:disabled){background:rgba(0,0,0,0) !important}.text-mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,"SF Mono",SFMono-Regular,"Consolas","Liberation Mono","Menlo","Courier",monospace}.section-header{display:flex;align-items:center;gap:var(--gap-component);margin-bottom:var(--space-3)}.section-header .title{font-weight:800;letter-spacing:.2px;margin:0}.card-list{display:flex;flex-direction:column;gap:0}.card{border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);border-radius:var(--feed-radius, 18px);background:var(--bs-body-bg);box-shadow:var(--feed-shadow, 0 2px 8px rgba(0, 0, 0, 0.08));transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;overflow:hidden}.card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translateY(-1px)}.card.compact .card-header{padding:var(--space-1) var(--card-padding-sm)}.card.compact .card-body{padding:var(--space-1) var(--card-padding-sm)}.card.compact .card-icon{width:32px;height:32px}.card.borderless{border:none;box-shadow:none;border-radius:0;border-bottom:1px solid var(--bs-border-color)}.card.borderless:hover{transform:none;box-shadow:none;background:var(--bs-tertiary-bg)}.card.highlighted{border-left:3px solid var(--bs-primary);background:color-mix(in srgb, var(--bs-primary), transparent 95%)}.card-header{display:flex;align-items:center;gap:var(--gap-component);padding:var(--card-padding);padding-bottom:var(--space-1)}.card-icon{width:42px;height:42px;border-radius:9999px;overflow:hidden;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);background:var(--bs-tertiary-bg);display:grid;place-items:center;flex:0 0 auto}.card-icon img{width:100%;height:100%;object-fit:cover;display:block}.card-meta{line-height:1.2;flex:1;min-width:0}.card-title{font-weight:700;color:var(--bs-body-color);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-subtitle{font-size:.82rem;color:var(--bs-secondary-color);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-pin{margin-left:auto;font-size:.75rem;padding:var(--space-1);border-radius:999px;background:#fff3cd;color:#664d03;border:1px solid #ffe69c;flex-shrink:0}[data-bs-theme=dark] .feed-pin{background:#3b2e04;color:#ffda6a;border-color:#4f3f0a}.card-body{padding:var(--space-1) var(--card-padding);padding-bottom:var(--space-1);position:relative}.feed-title{font:700 1.3rem/1.5 var(--bs-body-font-family);margin:var(--space-1) 0;color:#4b4b4b}[data-bs-theme=dark] .feed-title{color:var(--bs-body-color)}.feed-text{font-size:.95rem;line-height:1.6;color:var(--bs-body-color);margin:0}.feed-img{position:relative;border-top:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg)}.feed-img img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.card-actions{display:flex;align-items:center;gap:var(--space-1);padding:var(--card-padding);padding-top:var(--space-2);border-top:1px solid var(--bs-border-color);position:relative;z-index:2}.feed-action{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md, 10px);background:rgba(0,0,0,0);border:none;color:var(--bs-secondary-color);font-size:.875rem;cursor:pointer;transition:background .2s ease,color .2s ease}.feed-action:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.feed-action.active{color:var(--bs-primary);font-weight:600}.feed-action i{font-size:1rem}.feed-footer{padding:var(--space-2) var(--card-padding);border-top:1px solid var(--bs-border-color);font-size:.875rem;color:var(--bs-secondary-color)}@media(max-width: 576px){.section-header{gap:var(--space-2);flex-wrap:wrap}.card-header{padding:var(--space-2);padding-bottom:var(--space-1)}.card-icon{width:36px;height:36px}.feed-title{font-size:1.1rem}.card-actions{padding:var(--space-2)}}.list-view{--list-row-py: var(--space-1);--list-row-px: var(--space-2);--list-gap: var(--space-2);--list-avatar: 56px}.list-view{background:rgba(0,0,0,0);padding:0}.list-view.card-list{display:block;gap:0 !important}.list-view .list-row{padding:var(--list-row-py) var(--list-row-px) !important;margin:0 !important;border-bottom:1px solid var(--bs-border-color)}.list-view .list-row:last-of-type{border-bottom:0}.list-view .list-row .card-header{display:flex;align-items:center;gap:var(--list-gap);min-height:var(--list-avatar);margin:0;padding:0 !important}.list-view .list-row:has(.card-icon) .card-header{display:grid;grid-template-columns:var(--list-avatar) 1fr auto}.list-view .list-row .card-icon{width:var(--list-avatar);height:var(--list-avatar);border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--bs-secondary-bg), transparent 30%);flex:none}.list-view .list-row .card-icon img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.list-view .list-row .card-icon i{font-size:1.5rem;line-height:1;opacity:.6}.list-view .list-row .card-meta{margin:0;padding:0;min-width:0}.list-view .card-title{line-height:1.25}.emp-pos{color:var(--bs-secondary-color)}.list-view .card-subtitle{margin-top:var(--space-1)}.emp-actions{justify-self:end}.list-view .list-row .card-actions{padding:0 !important}.list-view .list-row .card-body{padding:0 !important}.list-view .list-row .card-body:empty{display:none !important}.modal-content{border-radius:1rem !important}.modal-dialog .modal-content{overflow:hidden}#postDetailModal .modal-dialog{max-width:800px !important;width:100%;margin:1.75rem auto}#postDetailModal .modal-body{max-height:85vh;overflow-y:auto;padding:0;background:var(--bs-body-bg) !important;scrollbar-width:none;-ms-overflow-style:none}#postDetailModal .modal-body::-webkit-scrollbar{display:none}.modal{z-index:1080 !important}.modal.show{z-index:1080 !important}.modal .modal-content{background-color:var(--bs-body-bg)}.modal-backdrop{z-index:1075 !important}.modal-backdrop.show{z-index:1075 !important}.ios-overlay{position:fixed;inset:0;z-index:1080;background:color-mix(in srgb, var(--bs-body-bg), #000 35%);backdrop-filter:blur(10px) saturate(110%);display:grid;place-items:end center}@media(min-width: 992px){.ios-overlay{place-items:center}}.ios-sheet{width:100%;max-width:560px;background:color-mix(in srgb, var(--bs-body-bg), #fff 6%);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 30%);border-radius:16px 16px 0 0;box-shadow:0 12px 48px rgba(0,0,0,.28);animation:slideUp .28s ease both}@media(min-width: 992px){.ios-sheet{border-radius:18px;animation:popIn .18s ease both}}.ios-grip{width:36px;height:4px;border-radius:999px;background:color-mix(in srgb, var(--bs-body-color), transparent 70%);margin:var(--space-1) auto}.ios-body{padding:var(--space-2) var(--space-3) var(--space-3)}@media(min-width: 992px){.ios-body{padding:var(--space-3)}}.ios-title{margin:.25rem 0;text-align:center;font-weight:800;letter-spacing:.2px}.ios-sub{text-align:center;color:var(--bs-secondary-color);margin:0 0 1rem}.ios-ava{width:64px;height:64px;border-radius:999px;overflow:hidden;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);background:var(--bs-tertiary-bg);display:grid;place-items:center;margin:.25rem auto .75rem}.ios-ava img{width:100%;height:100%;object-fit:cover;display:block}.ios-ico{width:56px;height:56px;border-radius:14px;background:color-mix(in srgb, var(--bs-danger), #000 12%);color:#fff;display:grid;place-items:center;margin:.25rem auto .75rem}.ios-actions{display:grid;gap:.6rem}.ios-btn{min-height:48px;border-radius:12px;font-weight:700}.ios-btn-danger{background:var(--bs-danger);border-color:var(--bs-danger);color:#fff}.ios-btn-danger:hover{filter:brightness(1.02)}.ios-btn-ghost{background:color-mix(in srgb, var(--bs-body-bg), #fff 6%);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);color:var(--bs-body-color)}.ios-btn-ghost:hover{background:color-mix(in srgb, var(--bs-body-bg), #fff 9%)}@keyframes slideUp{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes popIn{from{transform:scale(0.98);opacity:0}to{transform:scale(1);opacity:1}}.comment-item{padding:.5rem 0;display:flex;flex-direction:column;align-items:flex-start}.comment-item .comment-header{font-size:.875rem;margin-bottom:.25rem;display:flex;align-items:center;flex-wrap:wrap}.comment-item .comment-header .comment-author{font-weight:600;text-decoration:none;color:inherit}.comment-item .comment-header .comment-author:hover{text-decoration:underline}.comment-item .comment-header .comment-separator{color:var(--bs-secondary);margin:0 .25rem}.comment-item .comment-header .comment-date{color:var(--bs-secondary)}.comment-item .comment-header .badge,.comment-item .comment-header .badge-telegram{font-size:.7rem;padding:.15rem .4rem}.comment-item .comment-body{font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;background:var(--bs-tertiary-bg);padding:.5rem .75rem;border-radius:12px;max-width:80%}.comment-item.comment-item--author{align-items:flex-end}.comment-item.comment-item--author .comment-header{flex-direction:row-reverse}.comment-item.comment-item--author .comment-header .comment-separator{order:0}.comment-item.comment-item--author .comment-header .comment-date{order:-1}.comment-item.comment-item--author .comment-body{background:var(--bs-primary-bg-subtle, rgba(13, 110, 253, 0.1));border:1px solid var(--bs-primary-border-subtle, rgba(13, 110, 253, 0.2))}.comments-list{margin-bottom:1rem}.comments-section-header{display:flex;align-items:center;margin-bottom:.5rem}.comments-section-header .comments-icon{font-size:1.5rem;color:var(--bs-primary);margin-right:.5rem}.comments-section-header .comments-title{margin-bottom:0}.comments-section-header .comments-count{font-size:.875rem;color:var(--bs-secondary);margin-left:.5rem}.comments-section-wrapper{position:relative}.comments-scrollable{max-height:400px;overflow-y:auto;overflow-x:hidden;padding-bottom:1rem;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) rgba(0,0,0,0)}.comments-scrollable::-webkit-scrollbar{width:8px}.comments-scrollable::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.comments-scrollable::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:4px}.comments-scrollable::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.25)}.comment-form-sticky{position:sticky;bottom:0;background:var(--bs-body-bg);z-index:10;border-top:1px solid var(--bs-border-color);padding-top:1rem}.ios-search{position:relative;width:100%;max-width:420px}.ios-search-input{width:100%;height:40px;padding:var(--space-1) 36px var(--space-1) 36px;border-radius:14px;border:1px solid var(--bs-border-color);background:color-mix(in srgb, var(--bs-body-bg), #000 4%);font-size:15px;outline:none;transition:box-shadow .2s ease,border-color .2s ease,background .2s ease}.ios-search-input::-webkit-search-cancel-button,.ios-search-input::-webkit-search-decoration{display:none;-webkit-appearance:none}.ios-search-input::-ms-clear{display:none}.ios-search-input::placeholder{color:var(--bs-secondary-color);opacity:.6}.ios-search-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);background:var(--bs-body-bg)}[data-bs-theme=dark] .ios-search-input{background:color-mix(in srgb, var(--bs-body-bg), #fff 6%)}.ios-search>.bi-search{position:absolute;left:10px;top:50%;transform:translateY(-50%);opacity:.55;pointer-events:none;font-size:.95rem;color:var(--bs-body-color)}.ios-search-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:rgba(0,0,0,0);padding:var(--space-1);display:none;cursor:pointer;border-radius:50%;transition:background .2s ease}.ios-search-clear:hover{background:color-mix(in srgb, var(--bs-body-color), transparent 90%)}.ios-search-clear:active{background:color-mix(in srgb, var(--bs-body-color), transparent 85%)}.ios-search-clear .bi-x-lg{opacity:.6;font-size:.9rem;color:var(--bs-body-color)}.ios-search-input:not(:placeholder-shown)~.ios-search-clear{display:block}.ios-search.sm .ios-search-input{height:34px;font-size:14px;padding:var(--space-1) 32px var(--space-1) 32px;border-radius:12px}.ios-search.sm>.bi-search{left:8px;font-size:.85rem}.ios-search.sm .ios-search-clear{right:3px;padding:var(--space-1)}.ios-search.lg .ios-search-input{height:48px;font-size:16px;padding:var(--space-2) 42px var(--space-2) 42px;border-radius:16px}.ios-search.lg>.bi-search{left:12px;font-size:1.1rem}.ios-search.lg .ios-search-clear{right:6px;padding:var(--space-1)}.ios-search.icon-only .ios-search-input{padding-right:var(--space-3)}.ios-search.icon-only .ios-search-clear{display:none !important}@media(max-width: 576px){.ios-search{max-width:100%}.ios-search .ios-search-input{height:38px;font-size:14px}}.ios-card{border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);border-radius:var(--feed-radius);background:var(--bs-body-bg);box-shadow:var(--feed-shadow);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;overflow:hidden}.ios-card:hover{box-shadow:var(--feed-shadow-hover);transform:translateY(-1px)}.ios-header{position:sticky;top:var(--navbar-h, 0px);z-index:5;padding:var(--space-2) 0;backdrop-filter:saturate(180%) blur(12px);background:color-mix(in srgb, var(--bs-body-bg) 85%, transparent);border-bottom:none !important}.ios-title{font-weight:800;letter-spacing:-0.01em}.row.g-ios{align-items:flex-start}.ios-ava,.ios-ava--ph{display:grid;place-items:center;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:3rem;line-height:1;width:100%;height:100%;border-radius:28px;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%)}.ava-wrap{position:relative;width:132px;height:132px;margin:0 auto var(--space-2);display:block}.ios-name{font-weight:800;font-size:1.25rem}.ios-role{font-size:.9rem;color:var(--bs-secondary-color)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.ios-collapse-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:14px;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);background:color-mix(in srgb, var(--bs-body-bg) 94%, transparent);color:var(--bs-body-color)}.ios-collapse-caret{transition:transform .25s ease}.ios-collapse-trigger[aria-expanded=true] .ios-collapse-caret{transform:rotate(180deg)}.ios-collapse-trigger+.collapse{margin-top:0 !important}.ios-collapse-trigger+.collapse>.ios-list,.ios-collapse-trigger+.collapse>.chips{margin-top:.5rem}.collapsing{overflow:hidden;transition:height .35s ease}.ios-list{border-radius:14px;overflow:hidden;background:var(--bs-body-bg);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%)}.ios-cell{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);flex-wrap:wrap}.ios-cell:last-child{border-bottom:0}.ios-cell i{width:1.25rem;text-align:center;opacity:.9}.ios-cell a{text-decoration:none;color:inherit}.ios-cell.dept-item{justify-content:space-between}.ios-cell.dept-item>.d-flex{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:.35rem .5rem;max-width:100%}.ios-cell.dept-item.is-editing .dept-role{display:none !important}.ios-cell.dept-head{border-left:0;background:rgba(0,0,0,0)}.ios-section-title{font-weight:700;font-size:1rem;margin-bottom:.5rem}.rounded-ios{border-radius:14px !important}.dept-line{display:flex;align-items:center;gap:.5rem;min-width:0}.dept-name{font-weight:700}.dept-role{color:var(--bs-secondary-color)}.badge-head,.badge-gear{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:999px;font-weight:700;font-size:.8rem;line-height:1;white-space:nowrap;flex:0 0 auto}.badge-head .bi,.badge-gear .bi{font-size:.95rem;line-height:1}.badge-head{background:color-mix(in srgb, var(--bs-warning) 15%, var(--bs-body-bg));color:color-mix(in srgb, var(--bs-warning) 60%, black 0%);border:1px solid color-mix(in srgb, var(--bs-warning) 35%, transparent)}.badge-head:hover{background:color-mix(in srgb, var(--bs-warning) 20%, var(--bs-body-bg))}.badge-gear{background:color-mix(in srgb, var(--bs-primary) 15%, var(--bs-body-bg));color:color-mix(in srgb, var(--bs-primary) 60%, black 0%);border:1px solid color-mix(in srgb, var(--bs-primary) 35%, transparent)}.badge-gear:hover{background:color-mix(in srgb, var(--bs-primary) 20%, var(--bs-body-bg))}.badge-gear{cursor:pointer}@media(max-width: 420px){.badge-head .lbl,.badge-gear .lbl{display:none}}@media(max-width: 576px){.badge-head .lbl,.badge-gear .lbl{display:none}}.ios-acc{border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);border-radius:14px;background:var(--bs-body-bg);overflow:hidden}.ios-acc+.ios-acc{margin-top:var(--space-2)}.ios-acc .ios-collapse-trigger{border:0;border-radius:0;background:rgba(0,0,0,0);width:100%;padding:var(--space-2)}.ios-acc .ios-collapse-trigger:focus{box-shadow:none}.ios-acc .ios-collapse-trigger+.collapse{margin-top:0 !important}.ios-acc .collapse{margin:0 !important}.ios-acc .ios-list{border:0;border-radius:0}.ios-acc .chips{margin:0}.ios-acc .ios-acc-body{padding:var(--space-2);border-top:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%)}.ios-acc .ios-collapse-trigger+.collapse{margin-top:0 !important}.ios-acc .ios-acc-body{border-top:0}#activity .p-4{padding:0 !important}#activity .ios-section-title{padding:var(--space-2) var(--space-2) var(--space-1) !important;margin:0 !important}#activity .activity-feed{margin:0 !important;display:flex;flex-direction:column;gap:1rem}#activity .activity-feed .card{width:100% !important;max-width:none !important;border:0 !important;box-shadow:none !important;border-radius:0 !important;margin:0 !important}#activity .activity-feed .card-list{display:flex;flex-direction:column;gap:1rem}#activity .activity-feed .row>*{flex:0 0 100% !important;max-width:100% !important}#activity .card-actions{border-top:0 !important}#activity .collapse .bg-body-tertiary.border{border:0 !important}#skillsBlock[data-editable="1"] .chip.chip-add{display:inline-flex;align-items:center;cursor:pointer;border-style:dashed}#skillsBlock[data-editable="1"] .chip.chip-add.pulse{transform:scale(0.97);transition:transform .15s ease}#skillsBlock[data-editable="1"] .chip.chip-add .bi{font-size:.95rem}#skillsBlock[data-editable="1"] .chip.chip-skill:hover .lbl{opacity:0}#skillsBlock[data-editable="1"] .chip.chip-skill:hover .chip-del-btn,#skillsBlock[data-editable="1"] .chip.chip-skill:hover:focus-within .chip-del-btn{visibility:visible;opacity:1}.chip.chip-skill{position:relative;padding:.35rem .65rem}.chip.chip-skill .lbl{transition:opacity .15s ease}.chip.chip-skill .chip-del-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:0;padding:0;margin:0;cursor:pointer;color:var(--bs-danger);font-size:1rem;line-height:1;visibility:hidden;opacity:0;transition:opacity .15s ease;z-index:1}.chip.chip-skill .chip-del-btn .bi{pointer-events:none}.skills-empty{color:var(--bs-secondary-color);font-size:.875rem;margin-right:.25rem}.dept-edit-btn{width:32px;height:32px;padding:0;display:grid;place-items:center;border-radius:999px;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 30%);background:color-mix(in srgb, var(--bs-body-bg) 94%, transparent)}.dept-edit-btn:hover{background:color-mix(in srgb, var(--bs-body-bg) 88%, transparent)}.dept-editor-wrap{flex:0 0 100%;width:100%;margin-top:.5rem}.dept-editor form{display:flex;align-items:center;gap:.5rem}.dept-role-select{min-width:180px}.container-xxl{max-width:1820px;padding-inline:var(--bs-gutter-x, var(--space-2))}:root{--bs-primary: #007AFF;--bs-link-color: var(--bs-primary);--bs-link-hover-color: #0062CC}[data-bs-theme=dark]{--bs-body-bg: #1C1C1E;--bs-body-color: #F2F2F7;--bs-border-color: #3A3A3C;--bs-tertiary-bg: #2C2C2E;--bs-primary: #0A84FF;--bs-link-color: var(--bs-primary);--bs-link-hover-color: #59AFFF}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:17px;padding-top:var(--navbar-h);overflow-x:hidden;background-color:var(--bs-body-bg)}@supports(padding-top: env(safe-area-inset-top)){body{padding-top:calc(var(--navbar-h) + env(safe-area-inset-top))}}.btn{border-radius:10px;min-height:44px;transition:background-color .3s,transform .1s}.btn:hover{transform:scale(1.02)}.form-control{border-radius:10px;height:44px;font-size:17px}.form-control:focus{box-shadow:0 0 0 2px rgba(var(--bs-primary-rgb), 0.25);border-color:var(--bs-primary)}.dropdown-menu{border-radius:13px;box-shadow:0 6px 24px rgba(0,0,0,.12)}.app-navbar{position:fixed;inset:0 0 auto 0;z-index:1030;border-bottom:.5px solid var(--bs-border-color)}.app-layout{display:block}.content-container{width:100%;margin-left:auto;margin-right:auto}@media(max-width: 991.98px){.content-container{padding-left:var(--bs-gutter-x, 0.75rem);padding-right:var(--bs-gutter-x, 0.75rem)}}@media(min-width: 992px){.app-layout.with-sidebar .content-container,.app-layout.with-rightbar .content-container{max-width:none;padding-left:0;padding-right:0}.app-layout.with-sidebar.with-rightbar{display:grid;grid-template-columns:var(--sidebar-w) 1fr var(--rightbar-w);gap:var(--layout-gap);align-items:start}.app-layout.with-sidebar:not(.with-rightbar){display:grid;grid-template-columns:var(--sidebar-w) 1fr;gap:var(--layout-gap);align-items:start}.app-layout:not(.with-sidebar):not(.with-rightbar) .content-container{padding-left:var(--bs-gutter-x, 0.75rem);padding-right:var(--bs-gutter-x, 0.75rem);max-width:960px}.app-layout.with-sidebar .content-container>.row,.app-layout.with-rightbar .content-container>.row{margin-left:0;margin-right:0}.app-layout.with-sidebar .content-container>.row>[class*=col-],.app-layout.with-rightbar .content-container>.row>[class*=col-]{padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5)}.app-layout.with-sidebar .container>.row>[class*=col-]>.card,.app-layout.with-sidebar .container>.row>[class*=col-]>section.card,.app-layout.with-rightbar .container>.row>[class*=col-]>.card,.app-layout.with-rightbar .container>.row>[class*=col-]>section.card{max-width:100%;min-width:0;overflow:hidden}}@media(min-width: 1200px){.app-layout:not(.with-sidebar):not(.with-rightbar) .content-container{max-width:1140px}}@media(min-width: 1400px){.app-layout:not(.with-sidebar):not(.with-rightbar) .content-container{max-width:1320px}}#sidebar{--bs-offcanvas-width: var(--sidebar-w);border-radius:0 13px 13px 0}@media(min-width: 992px){#sidebar.offcanvas-lg{position:sticky;top:var(--navbar-h);height:calc(100dvh - var(--navbar-h));align-self:start;overflow:auto;border-right:.5px solid var(--bs-border-color);background:var(--bs-body-bg);transform:none !important;visibility:visible !important}}.bell-wrapper{position:relative;line-height:1;display:inline-block}.bell-dot{position:absolute;top:-2px;right:-2px;width:9px;height:9px;border-radius:999px;background:var(--bs-danger);color:#fff;font-size:7px;line-height:9px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px hsla(0,0%,100%,.65)}.btn-ghost{background:color-mix(in srgb, var(--bs-body-bg) 94%, transparent);color:var(--bs-body-color);padding:var(--space-1);border-radius:999px;font-size:.9rem;transition:background .2s ease}.btn-ghost:hover{background:color-mix(in srgb, var(--bs-body-bg) 88%, transparent)}.btn-ghost .bi{font-size:1rem;margin-right:.35rem;vertical-align:-2px}.btn-ghost .txt-close{display:none}.btn-ghost[aria-expanded=true] .txt-open{display:none}.btn-ghost[aria-expanded=true] .txt-close{display:inline}.feed-new{border-radius:var(--feed-radius);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);background:var(--bs-body-bg);box-shadow:var(--feed-shadow);padding:var(--card-padding)}.card-body .stretched-link::after,.feed-img .stretched-link::after{z-index:1}.collapse{position:relative;z-index:2}.alpha-header{position:sticky;top:calc(var(--navbar-h) + var(--space-1));z-index:1;background:color-mix(in srgb, var(--bs-body-bg) 92%, transparent);backdrop-filter:blur(6px);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 30%);color:var(--bs-secondary-color);display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:999px;font-weight:700;font-size:.85rem;margin:var(--space-1) 0 var(--space-1) var(--space-1)}.alpha-dot{width:6px;height:6px;border-radius:999px;background:var(--bs-primary);opacity:.6}.action-btn{min-height:unset;padding:var(--space-1)}.action-btn .bi{font-size:1rem}.feed-text,.feed-full{overflow-wrap:anywhere;width:100%;margin-right:0;padding-right:0}.readmore-toggle{position:relative;z-index:2}main.main{padding-bottom:0 !important}@media(min-width: 992px){.app-layout.with-rightbar main.main:has(.chat-page),.app-layout.with-sidebar main.main:has(.chat-page){max-height:calc(100vh - var(--navbar-h, 60px) - 2*var(--layout-padding-y, 12px));overflow:hidden}}@supports(height: 100svh){.chat-root{height:calc(100svh - var(--navbar-h))}}.chat-root>.row{height:100%;min-height:0}.chat-col{display:flex;flex-direction:column;height:93%;min-height:0}.card.chat-box{position:relative;flex:1 1 auto;min-height:0;display:grid;grid-template-rows:1fr auto;overflow:hidden;margin-bottom:0;background:var(--bs-body-bg)}.app-navbar{overflow:visible !important}.app-navbar .container-fluid{overflow:visible !important}@media(max-width: 767.98px){.app-navbar{min-height:90px}.app-navbar .container-fluid{min-height:64px;padding-top:.75rem;padding-bottom:.75rem}}.menu-toggle{padding:0;border:0;background:rgba(0,0,0,0);line-height:1;color:#fff}.menu-toggle:focus{outline:none;box-shadow:none}.dropdown-toggle.no-caret::after{display:none !important}.mobile-search-overlay{position:fixed;top:var(--navbar-h);left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:1030;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-search-overlay.active{opacity:1;pointer-events:auto}[data-bs-theme=light] .mobile-search-overlay{background-color:hsla(0,0%,100%,.85)}[data-bs-theme=dark] .mobile-search-overlay{background-color:rgba(0,0,0,.7)}.bottom-navbar{position:fixed;bottom:0;left:0;right:0;background-color:var(--bs-primary);border-top:.5px solid var(--bs-border-color);z-index:1040;padding:0;box-shadow:0 -1px 10px rgba(0,0,0,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}[data-bs-theme=dark] .bottom-navbar{background-color:var(--bs-tertiary-bg);border-top-color:var(--bs-border-color);box-shadow:0 -1px 10px rgba(0,0,0,.3)}.bottom-navbar-container{display:flex;justify-content:space-around;align-items:center;height:60px;padding:0 8px;max-width:100%}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;height:100%;color:hsla(0,0%,100%,.7);text-decoration:none;border:none;background:rgba(0,0,0,0);padding:4px 8px;transition:all .2s ease;position:relative;cursor:pointer}.bottom-nav-item:hover,.bottom-nav-item:focus,.bottom-nav-item:active{color:#fff;background:hsla(0,0%,100%,.1);outline:none}.bottom-nav-item i{font-size:1.4rem;margin-bottom:2px;line-height:1}[data-bs-theme=dark] .bottom-nav-item{color:var(--bs-secondary-color)}[data-bs-theme=dark] .bottom-nav-item:hover,[data-bs-theme=dark] .bottom-nav-item:focus,[data-bs-theme=dark] .bottom-nav-item:active{color:var(--bs-emphasis-color);background:var(--bs-secondary-bg)}.bottom-nav-label{font-size:.65rem;font-weight:500;text-align:center;line-height:1;margin-top:2px}.bottom-nav-icon-wrapper{position:relative;display:inline-block}.bottom-nav-badge{position:absolute;top:-6px;right:-10px;background:var(--bs-danger);color:#fff;border-radius:10px;padding:0 6px;font-size:11px;font-weight:600;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275),background-color .2s ease;z-index:10}.bottom-nav-badge.pulse{animation:badge-pulse .6s ease-out}.bottom-nav-badge.badge-muted{background:var(--bs-secondary)}.bottom-nav-badge:empty{display:none}@keyframes badge-pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}100%{transform:scale(1)}}@media(max-width: 767.98px){body{padding-bottom:60px}.chat-container~.bottom-navbar,.chat-page~.bottom-navbar,body:has(.chat-container) .bottom-navbar,body:has(.chat-page) .bottom-navbar{display:none}body:has(.chat-container),body:has(.chat-page){padding-bottom:0}}.page-header{position:sticky;top:var(--navbar-h, 60px);z-index:10;padding:var(--space-2) 0;margin-bottom:var(--space-3);background:linear-gradient(to bottom, color-mix(in srgb, var(--bs-body-bg) 90%, transparent) 0%, color-mix(in srgb, var(--bs-body-bg) 85%, transparent) 30%, color-mix(in srgb, var(--bs-body-bg) 70%, transparent) 50%, color-mix(in srgb, var(--bs-body-bg) 40%, transparent) 70%, transparent 100%);transition-property:background,box-shadow;transition-duration:.15s ease;transition-timing-function:ease}.page-header::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);mask-image:linear-gradient(to bottom, black 0%, black 30%, rgba(0, 0, 0, 0.7) 50%, rgba(0, 0, 0, 0.4) 70%, transparent 100%);-webkit-mask-image:linear-gradient(to bottom, black 0%, black 30%, rgba(0, 0, 0, 0.7) 50%, rgba(0, 0, 0, 0.4) 70%, transparent 100%);pointer-events:none;z-index:-1}.page-header>*{position:relative;z-index:1}.page-header.scrolled{background:linear-gradient(to bottom, color-mix(in srgb, var(--bs-body-bg) 95%, transparent) 0%, color-mix(in srgb, var(--bs-body-bg) 90%, transparent) 30%, color-mix(in srgb, var(--bs-body-bg) 75%, transparent) 50%, color-mix(in srgb, var(--bs-body-bg) 45%, transparent) 70%, transparent 100%);box-shadow:0 2px 8px rgba(0,0,0,.04)}.page-header .card{margin-top:var(--space-2);width:100%}.page-header .card button.dept-row,.page-header .card a.dept-row{cursor:pointer;transition:background-color .2s ease;width:100%;padding:var(--space-1) var(--space-2);text-align:center}.page-header .card button.dept-row .card-title,.page-header .card a.dept-row .card-title{font-weight:700;color:var(--bs-body-color)}.page-header .card button.dept-row i,.page-header .card a.dept-row i{color:var(--bs-primary)}.page-header .card button.dept-row:hover,.page-header .card a.dept-row:hover{background-color:var(--bs-light)}.page-header .d-flex.align-items-center{flex-wrap:wrap}.chat-avatar-wrapper{position:relative;width:48px;height:48px;flex-shrink:0}.chat-avatar{width:100%;height:100%;border-radius:12px;object-fit:cover;display:block;border:1px solid var(--bs-border-color)}.chat-type-badge{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;border-radius:50%;background:var(--bs-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;border:2px solid var(--bs-body-bg);box-shadow:0 2px 4px rgba(0,0,0,.1)}.chat-type-badge i{line-height:1}[data-bs-theme=dark] .chat-type-badge{border-color:var(--bs-body-bg)}.page-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%}.page-header-title{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.page-header-title h1{font-size:1.5rem;font-weight:700;margin:0;color:var(--bs-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-title i{font-size:1.75rem;flex-shrink:0}.page-header-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.page-title{font-weight:800;font-size:1.75rem;letter-spacing:-0.01em;line-height:1.2;color:var(--bs-body-color);flex-shrink:0}.page-count{font-size:.875rem;color:var(--bs-secondary-color);white-space:nowrap;flex-shrink:0}.page-count .count-value{font-weight:600;color:var(--bs-body-color)}.page-scope-switch{flex-shrink:0}.page-scope-switch .btn{min-width:60px;font-size:.875rem;border-radius:999px;padding:.375rem .75rem;transition:all .2s ease}.page-scope-switch .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.page-scope-switch .btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.page-scope-switch .btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff;font-weight:600}.page-filter-toggle:hover{background-color:color-mix(in srgb, var(--bs-primary), transparent 85%);border-color:var(--bs-primary);color:var(--bs-primary)}.page-filter-toggle[aria-expanded=true]{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff}.page-create-btn{font-weight:600;font-size:.875rem;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .2s ease}.page-create-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.page-create-btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.1)}.page-search{flex-shrink:1;min-width:200px;max-width:400px;flex-grow:1}.page-search .ios-search{width:100%}.page-filters-collapse{margin-top:var(--space-2);width:100%}.page-filters{border-radius:var(--radius-lg, 14px);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);background:var(--bs-body-bg);box-shadow:0 2px 8px rgba(0,0,0,.08);padding:var(--space-3);animation:slideDown .3s ease}.page-filters .btn{white-space:nowrap;min-width:fit-content}.page-filters .d-flex.gap-2{flex-wrap:wrap}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width: 991.98px){.page-title{font-size:1.5rem}.page-header{padding:var(--space-2) 0}.page-search{flex-basis:100%;max-width:none;margin-top:var(--space-2);order:10}.page-filter-toggle{order:11;margin-top:var(--space-2);margin-left:auto;margin-right:0 !important}}@media(max-width: 767.98px){.page-header-title h1{font-size:1.25rem}.page-header-title i{font-size:1.5rem}}@media(max-width: 575.98px){.page-header{margin-bottom:var(--space-2);padding:var(--space-1) 0;top:var(--navbar-h, 60px)}.page-title{font-size:1.125rem;font-weight:700}.page-count{font-size:.7rem}.page-scope-switch{gap:.25rem}.page-scope-switch .btn{min-width:auto;font-size:.7rem;padding:.2rem .4rem}.page-filters{margin-top:.5rem}.page-filters .btn{padding:.4rem .75rem;font-size:.85rem}.page-search{margin-top:.5rem}}@media(max-width: 575.98px)and (max-width: 480px){.page-count{display:none}.page-header .card{margin-top:0;width:100%}.page-header .card button.dept-row,.page-header .card a.dept-row{padding:var(--space-1) var(--space-1);font-size:.9rem}}@media(prefers-color-scheme: dark){.page-header{background:linear-gradient(to bottom, color-mix(in srgb, var(--bs-body-bg) 85%, transparent) 0%, color-mix(in srgb, var(--bs-body-bg) 80%, transparent) 45%, color-mix(in srgb, var(--bs-body-bg) 65%, transparent) 50%, color-mix(in srgb, var(--bs-body-bg) 35%, transparent) 70%, transparent 100%);border-bottom-color:color-mix(in srgb, var(--bs-border-color), transparent 60%)}.page-header.scrolled{background:linear-gradient(to bottom, color-mix(in srgb, var(--bs-body-bg) 90%, transparent) 0%, color-mix(in srgb, var(--bs-body-bg) 80%, transparent) 30%, color-mix(in srgb, var(--bs-body-bg) 72%, transparent) 50%, color-mix(in srgb, var(--bs-body-bg) 40%, transparent) 70%, transparent 100%)}.page-header .card button.dept-row:hover,.page-header .card a.dept-row:hover{background-color:color-mix(in srgb, var(--bs-body-bg) 95%, white)}.page-filters{box-shadow:0 2px 12px rgba(0,0,0,.3)}}#sidebar{--bs-offcanvas-border-color: transparent;--bs-offcanvas-border-width: 0;--bs-offcanvas-border-radius: 0;border:0 !important;border-radius:0 !important;box-shadow:none !important;background:var(--bs-body-bg)}@media(min-width: 992px){#sidebar.offcanvas-lg{position:sticky;top:calc(var(--navbar-h, 60px) + var(--layout-padding-y, 12px));height:calc(100dvh - var(--navbar-h, 60px) - 2*var(--layout-padding-y, 12px));align-self:start;overflow:auto;border-right:.5px solid var(--bs-border-color);transform:none !important;visibility:visible !important}}.side-section{margin:var(--space-1) 0 var(--space-2)}.side-hd{font-size:.78rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--bs-secondary-color);padding:var(--space-1);margin:0 0 var(--space-1) var(--space-1)}.side-nav{display:flex;flex-direction:column;gap:.15rem}.side-nav .nav-link{position:relative;display:flex;align-items:center;gap:.6rem;padding:.48rem .55rem;border-radius:10px;color:var(--bs-body-color);text-decoration:none;border:0;background:rgba(0,0,0,0) !important;line-height:1.15;transition-property:background,color,transform,box-shadow;transition-duration:.15s ease;transition-timing-function:ease;outline:none}.side-nav .nav-link:hover{color:var(--bs-primary);background:color-mix(in srgb, var(--bs-primary) 10%, transparent)}.side-nav .nav-link:focus-visible:focus,.side-nav .nav-link:focus-visible:focus-visible{outline:0;box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb), 0.25)}.side-nav .nav-link.active{color:var(--bs-primary);font-weight:800;background:color-mix(in srgb, var(--bs-primary) 16%, transparent)}.side-nav .nav-link.active::before{content:"";position:absolute;left:-6px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--bs-primary)}.side-nav .nav-link.disabled{opacity:.5;pointer-events:none}.side-icon{width:1.35rem;height:1.35rem;display:inline-grid;place-items:center;flex:0 0 auto}.side-icon>i{font-size:1.1rem;line-height:1}.icon-wrap{position:relative;display:inline-grid;place-items:center}.nav-unread{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 var(--space-1);border-radius:9999px;font-size:10px;line-height:16px;font-weight:700;background:var(--bs-danger);color:#fff;border:1px solid hsla(0,0%,100%,.6)}[data-bs-theme=dark] .nav-unread{border-color:rgba(0,0,0,.25)}.btn-theme{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;padding:.35rem .75rem;border-radius:999px;background:var(--bs-tertiary-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color);transition:transform .08s ease,background-color .25s ease,border-color .25s ease}.btn-theme:hover{transform:translateY(-1px);background:color-mix(in srgb, var(--bs-tertiary-bg) 90%, var(--bs-primary) 10%);border-color:color-mix(in srgb, var(--bs-border-color), var(--bs-primary) 30%)}.btn-theme:focus-visible{outline:0;box-shadow:0 0 0 2px rgba(var(--bs-primary-rgb), 0.25)}.btn-theme .bi{font-size:1rem;line-height:1}.btn-theme .mode-label{font-weight:700;font-size:.85rem;opacity:.9}@media(max-width: 576px){.btn-theme .mode-label{display:none}}.calendar-wrap{min-height:360px;border-radius:10px;overflow:hidden;background:var(--bs-body-bg);box-shadow:inset 0 1px 3px color-mix(in srgb, var(--bs-body-color), transparent 92%);border:0}.rightbar-card{height:100%;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);background:var(--bs-body-bg);box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.08);min-height:0}.rightbar-card .card-header{flex:0 0 auto;background:var(--bs-tertiary-bg);border-bottom:1px solid var(--bs-border-color);padding:var(--space-1) var(--space-2)}.rightbar-card .card-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-2)}.min-w-0{min-width:0}@media(min-width: 992px){.rightbar{position:sticky;top:calc(var(--navbar-h) + var(--layout-padding-y, 12px));height:calc(100dvh - var(--navbar-h) - 2*var(--layout-padding-y, 12px));overflow:hidden}}.fc{font-size:.7rem;--fc-border-color: var(--bs-border-color);--fc-page-bg-color: transparent;--fc-neutral-bg-color: transparent;--fc-today-bg-color: color-mix(in srgb, var(--bs-primary), transparent 85%);--fc-event-bg-color: var(--bs-primary);--fc-event-border-color: var(--bs-primary);--fc-event-text-color: var(--bs-body-bg)}.fc .fc-theme-standard .fc-scrollgrid{border:0 !important}.fc .fc-theme-standard td,.fc .fc-theme-standard th{border:0 !important}.fc .fc-toolbar{padding:var(--space-2);background:var(--bs-tertiary-bg);border-bottom:1px solid var(--bs-border-color);justify-content:space-between}.fc .fc-toolbar-title{font-size:1rem;font-weight:600;color:var(--bs-body-color)}.fc .fc-button{border-radius:8px;font-size:.82rem;padding:var(--space-1);background:rgba(0,0,0,0);border:none;color:var(--bs-primary)}.fc .fc-button:hover{background:rgba(var(--bs-primary-rgb), 0.1)}.fc .fc-daygrid-day-frame{padding:2px 3px !important}.fc .fc-daygrid-day-number{font-size:.82rem;width:100%;height:1.6rem;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--bs-body-color);text-decoration:none !important}.fc .fc-day-today{background:none !important}.fc .fc-day-today .fc-daygrid-day-number{color:var(--bs-primary);font-weight:700;border:1px solid var(--bs-primary);border-radius:50%}.fc .fc-day-other .fc-daygrid-day-number{opacity:.4}.fc .fc-daygrid-day-events{padding:0 2px 2px !important;row-gap:2px !important}.fc .fc-daygrid-event-harness{margin:0 0 2px 0 !important}.fc .fc-daygrid-event{border-radius:6px;padding:var(--space-1) !important;line-height:1.02 !important;background:color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 75%);border:1px solid color-mix(in srgb, var(--bs-primary), transparent 60%);color:var(--bs-body-color)}.fc .fc-daygrid-event .fc-event-time{display:none !important}.fc .fc-daygrid-event .fc-event-title{font-size:.62rem !important;line-height:1.02 !important;letter-spacing:-0.2px;font-weight:600;font-family:"Arial Narrow","Roboto Condensed",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;display:-webkit-box !important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden !important;white-space:normal !important;text-overflow:ellipsis;max-height:3.06em}.week-strip-header{margin-top:var(--space-2);display:flex;align-items:center;justify-content:space-between;color:var(--bs-secondary-color);font-size:.8rem}.week-vertical{margin-top:var(--space-1);display:flex;flex-direction:column;gap:var(--space-1)}.week-vertical .week-row{display:grid;grid-template-columns:56px 1fr;align-items:start;gap:var(--space-1);padding:var(--space-1);border-radius:12px;background:color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 86%);border:1px solid color-mix(in srgb, var(--bs-primary), transparent 70%)}.week-vertical .week-row:hover{background:color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 82%)}.week-vertical .content .title{font-size:.8rem;font-weight:600;color:var(--bs-body-color);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.week-vertical .content .meta{margin-top:.15rem;font-size:.72rem;color:var(--bs-secondary-color)}.date-badge{display:grid;place-items:center;border-radius:10px;padding:.35rem .25rem;background:color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 92%);border:1px solid color-mix(in srgb, var(--bs-primary), transparent 75%);text-align:center;line-height:1.05}.date-badge .dow{font-size:.7rem;font-weight:700;color:var(--bs-primary);text-transform:uppercase}.date-badge .md{font-size:.74rem;font-weight:700;color:var(--bs-body-color)}#rightbarOffcanvas{height:100dvh;height:100svh}#rightbarOffcanvas .offcanvas-body{display:flex;flex-direction:column;gap:var(--space-1);height:calc(100dvh - var(--rb-offcanvas-head, 56px));height:calc(100svh - var(--rb-offcanvas-head, 56px));min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#rightbarOffcanvas .calendar-wrap{flex:0 0 auto}#rightbarOffcanvas .week-vertical{flex:0 0 auto}.color-swatch{width:26px;height:26px;border:1px solid var(--bs-border-color);border-radius:9999px;padding:0;cursor:pointer;background:rgba(0,0,0,0)}.color-swatch.active{outline:2px solid var(--bs-primary);outline-offset:2px}.color-dot{width:12px;height:12px;border-radius:9999px;display:inline-block;vertical-align:middle;margin-right:6px;border:1px solid rgba(0,0,0,.1333333333)}.gap-component{gap:var(--gap-component)}.gap-section{gap:var(--gap-section)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mb-section{margin-bottom:var(--margin-section)}.mb-block{margin-bottom:var(--margin-block)}.my-section{margin-block:var(--margin-section)}.my-block{margin-block:var(--margin-block)}.p-card{padding:var(--card-padding)}.p-card-sm{padding:var(--card-padding-sm)}.p-card-lg{padding:var(--card-padding-lg)}.px-card{padding-inline:var(--card-padding)}.py-card{padding-block:var(--card-padding)}.px-card-sm{padding-inline:var(--card-padding-sm)}.py-card-sm{padding-block:var(--card-padding-sm)}.px-card-lg{padding-inline:var(--card-padding-lg)}.py-card-lg{padding-block:var(--card-padding-lg)}@media(max-width: 576px){.gap-component-mobile{gap:var(--space-1)}.p-card-mobile{padding:var(--card-padding-sm)}}.section-spacing{margin-bottom:var(--margin-section);padding:var(--card-padding)}.section-spacing-sm{margin-bottom:var(--space-2);padding:var(--card-padding-sm)}.section-spacing-lg{margin-bottom:var(--margin-block);padding:var(--card-padding-lg)}.app-layout{padding-top:var(--layout-padding-y);padding-bottom:var(--layout-padding-y)}.feed-pin{margin-left:auto;font-size:.75rem;padding:var(--space-1, 0.25rem);border-radius:999px;background:#fff3cd;color:#664d03;border:1px solid #ffe69c;flex-shrink:0}[data-bs-theme=dark] .feed-pin{background:#3b2e04;color:#ffda6a;border-color:#4f3f0a}.feed-title{font:700 1.3rem/1.5 var(--bs-body-font-family);margin:var(--space-1, 0.25rem) 0;color:#4b4b4b}[data-bs-theme=dark] .feed-title{color:var(--bs-body-color)}.feed-text{font-size:.95rem;line-height:1.6;color:var(--bs-body-color);margin:0}.feed-img{position:relative;border-top:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg)}.feed-img img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.feed-action{display:inline-flex;align-items:center;gap:var(--space-1, 0.25rem);padding:var(--space-1, 0.25rem);border-radius:var(--radius-md, 10px);background:rgba(0,0,0,0);border:none;color:var(--bs-secondary-color);font-size:.875rem;cursor:pointer;transition:background .2s ease,color .2s ease}.feed-action:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.feed-action.active{color:var(--bs-primary);font-weight:600}.feed-action i{font-size:1rem}.feed-footer{padding:var(--space-2, 0.5rem) var(--card-padding, 1rem);border-top:1px solid var(--bs-border-color);font-size:.875rem;color:var(--bs-secondary-color)}@media(max-width: 576px){.feed-title{font-size:1.1rem}}textarea.autogrow{overflow:hidden;resize:none;min-height:120px;max-height:70vh}textarea.autogrow.is-max{overflow-y:auto}.join-wrap{padding:var(--space-2);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%);border-radius:var(--feed-radius);background:var(--bs-body-bg);box-shadow:var(--feed-shadow)}.join-scroller{position:relative;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none;mask-image:linear-gradient(to right, transparent 0%, black 40px, black calc(100% - 40px), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0%, black 40px, black calc(100% - 40px), transparent 100%)}.join-scroller::-webkit-scrollbar{display:none}.join-rail{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:center;gap:.9rem;padding:.25rem;min-width:100%}@media(prefers-reduced-motion: reduce){.join-scroller{scroll-behavior:auto !important}}.join-item{--base: 56px;--mult: 4;--size: var(--base);position:relative;display:flex;flex-direction:column;align-items:center;width:var(--size);flex:0 0 var(--size);transition:width .22s ease,flex-basis .22s ease}.join-item:hover,.join-item:focus-within{--size: calc(var(--base) * var(--mult));z-index:2}.join-item.no-hover:hover,.join-item.no-hover:focus-within{--size: var(--base);z-index:auto}.join-item.no-hover .join-info{max-height:0;opacity:0;transform:translateY(-4px)}.join-ava{width:var(--size);height:var(--size);border-radius:999px;overflow:hidden;display:grid;place-items:center;border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 20%);background:var(--bs-tertiary-bg);transition:width .22s ease,height .22s ease,box-shadow .22s ease,border-color .22s ease;will-change:width,height}.join-ava img{width:100%;height:100%;object-fit:cover;display:block;background:var(--bs-tertiary-bg)}.join-ava .bi{font-size:1.2rem;opacity:.65}.join-item:hover .join-ava,.join-item:focus-within .join-ava{box-shadow:var(--feed-shadow-hover);border-color:color-mix(in srgb, var(--bs-border-color), var(--bs-primary) 30%)}.join-info{width:100%;overflow:hidden;max-height:0;opacity:0;transform:translateY(-4px);transition:max-height .24s ease,opacity .18s ease,transform .18s ease}.join-item:hover .join-info,.join-item:focus-within .join-info{max-height:320px;opacity:1;transform:translateY(0)}.join-info .name{font-weight:800;line-height:1.2;margin-top:.5rem;text-align:center}.join-info .sub{font-size:.9rem;color:var(--bs-secondary-color);text-align:center}.join-info .skills-line{font-size:.9rem;text-align:center;margin-top:.35rem;word-break:break-word;white-space:normal}.join-info .skills-line b{font-weight:800}.join-info .link{display:inline-block;margin-top:.35rem;font-size:.9rem;text-decoration:none}.join-info .link:hover{text-decoration:underline}@media(max-width: 480px){.join-item{--mult: 3.2}}#reqList.card{display:block;gap:0;padding:0}#reqList .req-table-header{position:sticky;top:0;z-index:10;background:var(--bs-body-bg);border-bottom:2px solid var(--bs-border-color)}#reqList .req-table-header .req-table-row{padding:.625rem 1rem}#reqList .req-table-header h6{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--bs-secondary-color);margin:0}#reqList .req-table-header .req-cell{align-items:center}#reqList .req-table-header .req-cell-title h6,#reqList .req-table-header .req-cell-author h6{text-align:left}#reqList .req-table-header .req-cell-dates h6,#reqList .req-table-header .req-cell-status h6,#reqList .req-table-header .req-cell-created h6,#reqList .req-table-header .req-cell-actions h6{text-align:center}#reqList .req-row{padding:0;margin:0;border-bottom:1px solid color-mix(in srgb, var(--bs-border-color), transparent 50%);transition:background-color .15s ease}#reqList .req-row:hover{background-color:color-mix(in srgb, var(--bs-primary) 3%, transparent)}#reqList .req-row:last-child{border-bottom:0}#reqList .req-table-row{display:grid;grid-template-columns:48px minmax(200px, 2fr) minmax(120px, 1fr) 100px 110px 80px 80px;gap:.75rem;align-items:start;padding:.75rem 1rem}#reqList .req-cell{min-width:0;display:flex;align-items:center}#reqList .req-cell-content{width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;hyphens:auto;line-height:1.4}#reqList .req-cell-icon{justify-content:center}#reqList .req-cell-icon .card-icon{width:38px;height:38px;flex-shrink:0}#reqList .req-cell-title{font-size:.9rem}#reqList .req-cell-title strong{display:block;margin-bottom:.125rem}#reqList .req-cell-title .badge,#reqList .req-cell-title .badge-telegram{font-size:.7rem;padding:.2rem .4rem}#reqList .req-cell-author{font-size:.875rem}#reqList .req-cell-dates{font-size:.8rem;font-variant-numeric:tabular-nums;line-height:1.3}#reqList .req-cell-status{justify-content:flex-start}#reqList .req-cell-status .badge,#reqList .req-cell-status .badge-telegram{font-size:.7rem;padding:.25rem .5rem;white-space:nowrap}#reqList .req-cell-created{font-size:.75rem;text-align:center}#reqList .req-cell-actions{justify-content:center;gap:.25rem}#reqList .req-cell-actions .req-cell-content{display:flex;gap:.25rem;justify-content:center}#reqList .req-footer{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;margin-left:calc(48px + .75rem);border-top:none;background:rgba(0,0,0,0)}#reqList .comments-block{margin:0;padding:1rem;margin-left:calc(48px + .75rem)}@media(max-width: 992px){#reqList .req-table-header .req-table-row,#reqList .req-table-row{grid-template-columns:42px minmax(150px, 2fr) minmax(100px, 1fr) 90px 100px 70px}#reqList .req-table-header .req-cell-actions{display:none}#reqList .req-cell-actions{grid-column:6;display:flex !important;justify-content:flex-end}}@media(max-width: 768px){#reqList .req-table-header{display:none}#reqList .req-table-row{display:flex;flex-direction:row;flex-wrap:wrap;padding:1rem .75rem;gap:.75rem;align-items:flex-start}#reqList .req-cell{display:block;min-width:0}#reqList .req-cell-content{width:100%}#reqList .req-cell-icon{flex:0 0 36px;padding-top:.25rem}#reqList .req-cell-icon .card-icon{width:32px;height:32px}#reqList .req-cell-title{flex:1 1 calc(100% - 48px);font-size:.9rem}#reqList .req-cell-title strong{display:block;margin-bottom:.25rem;font-size:.95rem}#reqList .req-cell-title .badge,#reqList .req-cell-title .badge-telegram{display:inline-block;font-size:.7rem;padding:.2rem .4rem}#reqList .req-cell-title .small{display:block;font-size:.8rem;margin-top:.25rem}#reqList .req-cell-author,#reqList .req-cell-dates,#reqList .req-cell-status{flex:0 1 auto;font-size:.8rem}#reqList .req-cell-dates{white-space:nowrap}#reqList .req-cell-dates br{display:none}#reqList .req-cell-status .badge,#reqList .req-cell-status .badge-telegram{font-size:.7rem;padding:.25rem .5rem;white-space:nowrap}#reqList .req-cell-created{display:none}#reqList .req-cell-actions{display:flex !important;flex:1 1 100%;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--bs-border-color-translucent);margin:0}#reqList .req-cell-actions .req-cell-content{display:flex;gap:.5rem;flex-wrap:wrap;width:100%}#reqList .req-cell-actions .btn{padding:.5rem .75rem;font-size:.85rem}#reqList .req-footer{flex:1 1 100%;margin-left:0;padding:.75rem 0;border-top:1px solid var(--bs-border-color-translucent);display:flex;flex-wrap:wrap;gap:.5rem}#reqList .req-footer .btn{padding:.4rem .6rem;font-size:.8rem}#reqList .comments-block{margin-left:0;padding:.75rem}#reqList .req-row{padding:0;border-bottom:1px solid color-mix(in srgb, var(--bs-border-color), transparent 50%)}#reqList .req-row:hover{background-color:rgba(0,0,0,0)}#reqList .req-row:last-child{border-bottom:0}}@media(max-width: 576px){#reqList .req-table-row{padding:.625rem}#reqList .req-cell-title .small{display:none}#reqList .req-cell-dates br{display:none}#reqList .req-cell-dates .req-cell-content::after{content:" — "}}.req-item{border-bottom:1px solid var(--bs-border-color);padding:1rem;transition:background-color .2s}.req-item:hover{background-color:var(--bs-light)}.req-item:last-child{border-bottom:none}.req-header{margin-bottom:.75rem}.req-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.req-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--bs-body-color);font-weight:500;flex:1;min-width:0}.req-link:hover{color:var(--bs-primary)}.req-link strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.req-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem;color:var(--bs-secondary-color)}.req-meta>span{display:flex;align-items:center;gap:.25rem}.req-comment{margin:.5rem 0;padding:.5rem;background-color:var(--bs-light);border-radius:.375rem;font-size:.875rem;color:var(--bs-secondary-color)}.req-footer{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding-top:.75rem;border-top:1px solid var(--bs-border-color-translucent);font-size:.875rem}.req-approver,.req-recipients{display:flex;align-items:center;gap:.25rem;color:var(--bs-secondary-color)}.badge-warning{background-color:#ffc107;color:#000}.badge-success{background-color:#198754;color:#fff}.badge-danger{background-color:#dc3545;color:#fff}.badge-secondary{background-color:#6c757d;color:#fff}.load-more-trigger{visibility:hidden}.request-detail-card .req-detail-header{padding:1rem 1.25rem;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg)}.request-detail-card .req-detail-row{display:flex;align-items:flex-start;gap:1rem}.request-detail-card .req-detail-icon{flex-shrink:0}.request-detail-card .req-detail-icon .card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bs-tertiary-bg);border-radius:.5rem;font-size:1.5rem}.request-detail-card .req-detail-content{flex:1;min-width:0}.request-detail-card .req-detail-content h1{font-size:1.25rem;font-weight:600;margin:0;line-height:1.3}.request-detail-card .req-detail-actions{display:flex;gap:.5rem;flex-shrink:0}.req-info-block{display:flex;padding:.75rem 0;border-bottom:1px solid color-mix(in srgb, var(--bs-border-color), transparent 50%)}.req-info-block:last-child{border-bottom:none;padding-bottom:0}.req-info-block:first-child{padding-top:0}.req-info-label{flex:0 0 140px;font-size:.875rem;color:var(--bs-secondary-color);font-weight:500}.req-info-value{flex:1;min-width:0;font-size:.9375rem}.req-comment-text{padding:.75rem 1rem;background:var(--bs-tertiary-bg);border-radius:.375rem;line-height:1.5}#comments-section{position:sticky;top:1rem;display:flex;flex-direction:column;max-height:80vh;overflow:visible}#comments-section .card-header{background:var(--bs-body-bg);padding:.75rem 1rem;font-size:.9375rem}#comments-section .card-body{flex:1;min-height:100px;overflow-y:auto;overflow-x:visible}#comments-section .list-group-item{padding:.75rem 1rem;border-left:0;border-right:0}#comments-section .list-group-item:first-child{border-top:0}#comments-section .card-footer{padding:.75rem 1rem;position:relative;z-index:100;overflow:visible;flex-shrink:0;border-top:1px solid var(--bs-border-color)}#comments-section .card-footer .message-field{background:var(--bs-tertiary-bg)}#comments-section .dropdown{position:static}#comments-section .dropdown-menu{z-index:2000 !important;position:fixed !important;max-height:350px;overflow-y:auto;width:auto !important;min-width:300px}@media(max-width: 992px){.request-detail-card .req-detail-row{flex-wrap:wrap}.request-detail-card .req-detail-content{flex:1 1 calc(100% - 64px)}.request-detail-card .req-detail-actions{width:100%;margin-top:.75rem}#comments-section{position:static}.req-info-block{flex-direction:column;gap:.25rem}.req-info-label{flex:none;font-size:.75rem}}@media(max-width: 576px){.request-detail-card .req-detail-header{padding:.75rem 1rem}.request-detail-card .req-detail-icon .card-icon{width:40px;height:40px;font-size:1.25rem}.request-detail-card .req-detail-content h1{font-size:1.1rem}.request-detail-card .req-detail-actions{flex-direction:column}.request-detail-card .req-detail-actions .btn{width:100%}}.recipient-picker-email{font-size:.9375rem}.recipient-row{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--bs-border-color)}.recipient-row:last-child{border-bottom:none}.recipient-label{min-width:80px;padding-top:.5rem;color:var(--bs-secondary);font-weight:500;display:flex;align-items:center;gap:.5rem;margin:0}.recipient-label i{font-size:1.1em}.recipient-field{flex:1;display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap}.recipient-input-wrapper{flex:1;min-width:300px;display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.375rem .5rem;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);position:relative;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.recipient-input-wrapper:focus-within{border-color:var(--bs-primary);box-shadow:0 0 0 .15rem rgba(var(--bs-primary-rgb), 0.15)}.recipient-input{flex:1;min-width:200px;border:none;outline:none;padding:.25rem;font-size:inherit;background:rgba(0,0,0,0)}.recipient-input::placeholder{color:var(--bs-secondary-color);opacity:.7}.recipient-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:var(--bs-primary);color:#fff;border-radius:1rem;font-size:.875rem;white-space:nowrap;transition:background-color .15s}.recipient-chip:hover{background:var(--bs-primary-dark, #0056b3)}.recipient-chip.chip-cc{background:var(--bs-secondary)}.recipient-chip.chip-cc:hover{background:var(--bs-secondary-dark, #5a6268)}.chip-remove{background:none;border:none;padding:0;color:#fff;cursor:pointer;display:flex;align-items:center;opacity:.8;transition:opacity .15s}.chip-remove:hover{opacity:1}.chip-remove i{font-size:1.1em;line-height:1}.recipient-chips{display:inline-flex;flex-wrap:wrap;gap:.375rem;align-items:center}.recipient-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);max-height:300px;overflow-y:auto;z-index:1050}.dropdown-item-user{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;cursor:pointer;transition:background-color .15s}.dropdown-item-user:hover{background-color:var(--bs-light)}.dropdown-item-empty{padding:.75rem 1rem;color:var(--bs-secondary);text-align:center;font-size:.875rem}.user-avatar-small{width:32px;height:32px;border-radius:50%;background:var(--bs-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;flex-shrink:0;overflow:hidden}.user-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bs-primary);color:#fff;font-weight:600;font-size:.75rem}.user-info{flex:1;min-width:0}.user-name{font-weight:500;color:var(--bs-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-subtitle{font-size:.8125rem;color:var(--bs-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-sm{padding:.5rem .75rem;margin-top:.75rem;font-size:.875rem}@media(max-width: 768px){.recipient-row{flex-direction:column;gap:.5rem}.recipient-label{min-width:auto;padding-top:0}.recipient-input-wrapper{min-width:100%}.recipient-input{min-width:150px}}@media(max-width: 576px){.recipient-chip{font-size:.8125rem;padding:.2rem .4rem}.user-avatar-small{width:28px;height:28px;font-size:.7rem}.dropdown-item-user{padding:.5rem .75rem}}@media(prefers-color-scheme: dark){.recipient-input-wrapper{background:var(--bs-dark);border-color:var(--bs-gray-700)}.recipient-dropdown{background:var(--bs-dark);border-color:var(--bs-gray-700)}.dropdown-item-user:hover{background-color:var(--bs-gray-800)}}#docList.card-list{display:block;gap:0 !important}#docList .doc-row{padding:var(--space-2) !important;margin:0 !important;border-bottom:1px solid var(--bs-border-color);transition:background-color .2s ease;cursor:pointer}#docList .doc-row:hover{background-color:color-mix(in srgb, var(--bs-primary) 4%, transparent)}#docList .doc-row.doc-unacked{background-color:color-mix(in srgb, var(--bs-warning) 8%, transparent);border-left:3px solid var(--bs-warning);padding-left:calc(var(--space-2) - 3px) !important}#docList .doc-row.doc-unacked:hover{background-color:color-mix(in srgb, var(--bs-warning) 15%, transparent)}#docList .doc-row:last-child{border-bottom:0}#docList .card-header{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:.75rem;margin:0;padding:0 !important}#docList .feed-ico{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb, var(--bs-body-bg) 90%, transparent);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 30%);color:var(--bs-primary)}.doc-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.scope-switch .btn{min-height:36px;border-radius:999px}@media(max-width: 576px){#docList .card-header{grid-template-columns:28px 1fr;gap:.5rem}.doc-actions{grid-column:2;margin-top:.5rem;justify-content:flex-start}.doc-actions .btn,.doc-actions .btn-icon{font-size:.85rem;padding:.35rem .65rem}}.recipient-picker{border:1px solid var(--bs-border-color);border-radius:12px;padding:var(--space-2);background:var(--bs-body-bg)}.recipient-picker .rp-selected{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-1)}.recipient-picker .rp-chip{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--bs-border-color);border-radius:999px;padding:var(--space-1);font-size:.85rem}.recipient-picker .rp-chip button{border:0;background:rgba(0,0,0,0);padding:0 var(--space-1);line-height:1}.recipient-picker .rp-search{position:relative}.recipient-picker .rp-search input{width:100%}.recipient-picker .rp-results{margin-top:.5rem;max-height:220px;overflow:auto;border:1px solid var(--bs-border-color);border-radius:10px}.recipient-picker .rp-item{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-bottom:1px solid var(--bs-border-color)}.recipient-picker .rp-item:last-child{border-bottom:0}.recipient-picker .rp-item small{color:var(--bs-secondary-color)}.recipient-picker .rp-empty{padding:var(--space-1);text-align:center;color:var(--bs-secondary-color)}.recipient-picker .rp-avatar{width:26px;height:26px;border-radius:50%;background:color-mix(in srgb, var(--bs-primary) 12%, transparent);display:inline-grid;place-items:center;font-size:.7rem}.recipient-block[hidden]{display:none !important}.acks-list{max-height:50vh;overflow:auto;margin:0;padding-left:1.1rem}.acks-empty{color:var(--bs-secondary-color)}.acks-more{margin-top:.5rem}.card-icon{width:32px;height:32px;flex:0 0 32px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center}.rp-avatar{width:100%;height:100%;object-fit:cover}.modal-backdrop.show{z-index:3000 !important}.modal.show{z-index:3010 !important}.modal-dialog{pointer-events:auto !important}.role-portal{z-index:1800 !important}:root{--wheel-size: 200px;--ava-size: 52px;--ring-bg: radial-gradient( ellipse at center, var(--bs-body-bg), color-mix(in srgb, var(--bs-body-bg) 85%, var(--bs-secondary-bg, #f7f7f9) 15%) );--ring-border: var(--bs-border-color, rgba(0, 0, 0, 0.125));--shadow-inset: 0 8px 24px rgba(0, 0, 0, 0.06) inset;--shadow-out: 0 4px 12px rgba(0, 0, 0, 0.05);--arc-width: 4px;--arc-track: color-mix(in srgb, var(--bs-secondary-color) 30%, transparent);--arc-prog: var(--bs-primary)}.team-wrap{width:var(--wheel-size);display:flex;flex-direction:column;align-items:center;margin-inline:auto}.team-wheel{position:relative;width:var(--wheel-size);height:var(--wheel-size);border-radius:50%;overflow:hidden;background:var(--ring-bg);border:1px solid var(--ring-border);box-shadow:var(--shadow-inset);user-select:none;touch-action:none;display:flex;align-items:center;justify-content:center}.wheel-plane{position:absolute;inset:0}.wheel-columns{position:absolute;inset:10px var(--space-1);display:flex;gap:var(--space-1);justify-content:space-between;align-items:flex-start;will-change:transform}.wheel-col{width:calc(25% - 6px);display:flex;flex-direction:column;gap:var(--space-1);align-items:center}.wheel-col.col-2{margin-top:calc(var(--ava-size)*.5)}.wheel-col.col-3{margin-top:calc(var(--ava-size)*1)}.wheel-col.col-4{margin-top:calc(var(--ava-size)*1.5)}.wheel-item{background:rgba(0,0,0,0);border:0;padding:0;width:var(--ava-size);height:var(--ava-size);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-out)}.wheel-item .ava{width:100%;height:100%;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.wheel-item .ava img{width:100%;height:100%;object-fit:cover}.wheel-item .ava .bi{font-size:1.2rem;opacity:.5}.wheel-item:active{transform:scale(0.96)}.progress-ring{position:absolute;inset:-1px;transform:rotate(-90deg);pointer-events:none}.progress-ring__circle{stroke:var(--arc-track);fill:none;stroke-width:var(--arc-width);stroke-linecap:round}.progress-ring__prog{stroke:var(--arc-prog);fill:none;stroke-width:var(--arc-width);stroke-linecap:round;transition:stroke-dashoffset .35s}.team-controls{margin-top:var(--space-2);display:flex;gap:var(--space-1);align-items:center}.team-nav{padding:var(--space-1);border:1px solid var(--bs-border-color);background:var(--bs-body-bg);border-radius:8px}.team-nav:active:not(:disabled){transform:scale(0.96)}.team-nav:disabled{opacity:.4;cursor:not-allowed}.team-dots{display:flex;gap:6px;align-items:center}.team-dot{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb, var(--bs-secondary-color), transparent 70%)}.team-dot.active{background:var(--bs-primary)}.bell-wrapper{position:relative;display:inline-block}.bell-dot{position:absolute;top:-4px;right:-6px;min-width:16px;height:16px;padding:0 4px;background-color:#dc3545;color:#fff;border-radius:8px;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px hsla(0,0%,100%,.3)}.notification-dropdown-menu{position:fixed;width:360px;max-height:500px;background:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:10000;overflow:hidden;display:flex;flex-direction:column}[data-bs-theme=dark] .notification-dropdown-menu{background:#2b3035;color:#dee2e6;box-shadow:0 8px 24px rgba(0,0,0,.4)}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e9ecef;background:#f8f9fa}[data-bs-theme=dark] .notification-dropdown-header{background:#1f2327;border-bottom-color:#3d4349}.notification-dropdown-body{flex:1;overflow-y:auto;max-height:300px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-gutter:stable both-edges;overscroll-behavior:contain;scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 70%) rgba(0,0,0,0)}.notification-dropdown-body:hover{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 55%) rgba(0,0,0,0)}.notification-dropdown-body::-webkit-scrollbar{width:10px;height:10px}.notification-dropdown-body::-webkit-scrollbar-track{background:rgba(0,0,0,0);margin-block:0}.notification-dropdown-body::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 75%);border-radius:999px;border:3px solid rgba(0,0,0,0);background-clip:padding-box}.notification-dropdown-body:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 55%)}[data-bs-theme=dark] .notification-dropdown-body{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 78%) rgba(0,0,0,0)}[data-bs-theme=dark] .notification-dropdown-body:hover{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 60%) rgba(0,0,0,0)}[data-bs-theme=dark] .notification-dropdown-body::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 78%)}[data-bs-theme=dark] .notification-dropdown-body:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 60%)}@media(hover: none),(pointer: coarse){.notification-dropdown-body{scrollbar-width:none}.notification-dropdown-body::-webkit-scrollbar{display:none}}.notification-dropdown-divider{height:1px;background:#e9ecef;margin:0}[data-bs-theme=dark] .notification-dropdown-divider{background:#3d4349}.notification-dropdown-section{padding:8px 0}.notification-item{display:flex;gap:12px;padding:12px 16px;cursor:pointer;transition:background-color .2s;position:relative;border-bottom:1px solid #e9ecef}.notification-item:last-child{border-bottom:none}.notification-item:hover{background-color:#f8f9fa}.notification-item.unread{background-color:#f0f7ff}.notification-item.unread:hover{background-color:#e6f2ff}[data-bs-theme=dark] .notification-item{border-bottom-color:#3d4349}[data-bs-theme=dark] .notification-item:hover{background-color:#343a40}[data-bs-theme=dark] .notification-item.unread{background-color:#1a3a52}[data-bs-theme=dark] .notification-item.unread:hover{background-color:#1e4260}.notification-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:14px;margin-bottom:4px;color:#212529}[data-bs-theme=dark] .notification-title{color:#dee2e6}.notification-message{font-size:13px;color:#6c757d;margin-bottom:4px}[data-bs-theme=dark] .notification-message{color:#adb5bd}.notification-time{font-size:11px;color:#adb5bd}[data-bs-theme=dark] .notification-time{color:#6c757d}.notification-unread-badge{flex-shrink:0;width:8px;height:8px;background-color:#0d6efd;border-radius:50%;margin-left:8px;align-self:center}.notification-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#adb5bd;text-align:center}.notification-empty-state i{font-size:48px;margin-bottom:12px}.notification-empty-state div{font-size:14px}[data-bs-theme=dark] .notification-empty-state{color:#6c757d}.extra-small{font-size:.7rem}.toast-container{z-index:9999}.toast{min-width:300px}.notification-read{opacity:.7}.notification-read .card{background-color:#f8f9fa}[data-bs-theme=dark] .notification-read{opacity:.65}[data-bs-theme=dark] .notification-read .card{background-color:#1f2327 !important;border-color:#3d4349 !important}.notification-unread{border-left:4px solid var(--bs-primary)}.notification-unread .card{background-color:#fff}.notification-unread [data-bs-theme=dark] .card{background-color:#2b3035;border-color:#3d4349}.notification-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem}[data-bs-theme=dark] .card{background-color:#2b3035;border-color:#3d4349;color:#dee2e6}[data-bs-theme=dark] .card-body{color:#dee2e6}[data-bs-theme=dark] .text-muted{color:#adb5bd !important}[data-bs-theme=dark] .btn-outline-primary{color:#6ea8fe;border-color:#6ea8fe}[data-bs-theme=dark] .btn-outline-primary:hover{background-color:#0d6efd;border-color:#0d6efd;color:#fff}[data-bs-theme=dark] .btn-outline-secondary{color:#adb5bd;border-color:#6c757d}[data-bs-theme=dark] .btn-outline-secondary:hover{background-color:#6c757d;border-color:#6c757d;color:#fff}[data-bs-theme=dark] .btn-outline-danger{color:#ea868f;border-color:#ea868f}[data-bs-theme=dark] .btn-outline-danger:hover{background-color:#dc3545;border-color:#dc3545;color:#fff}[data-bs-theme=dark] .form-select,[data-bs-theme=dark] .form-control{background-color:#1f2327;border-color:#3d4349;color:#dee2e6}[data-bs-theme=dark] .form-select:focus,[data-bs-theme=dark] .form-control:focus{background-color:#2b3035;border-color:#6ea8fe;color:#dee2e6}[data-bs-theme=dark] .pagination .page-link{background-color:#2b3035;border-color:#3d4349;color:#6ea8fe}[data-bs-theme=dark] .pagination .page-link:hover{background-color:#343a40;border-color:#3d4349;color:#9ec5fe}[data-bs-theme=dark] .pagination .page-item.active .page-link{background-color:#0d6efd;border-color:#0d6efd;color:#fff}[data-bs-theme=dark] .pagination .page-item.disabled .page-link{background-color:#1f2327;border-color:#3d4349;color:#6c757d}.message-field{display:flex;align-items:center;gap:var(--space-1);width:100%;padding:.35rem .4rem;border:1px solid var(--bs-border-color);border-radius:999px;background:rgba(0,0,0,0);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;--message-action-size: 42px;flex-wrap:nowrap}.message-field:focus-within{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb), 0.15);background:rgba(0,0,0,0)}.message-field--stacked{align-items:stretch;flex-direction:column;border-radius:24px;padding:.75rem;gap:var(--space-1)}.message-field--compact{padding:.25rem .3rem;border-radius:24px;--message-action-size: 36px}.message-input,.composer-textarea{flex:1 1 auto;min-width:0;border:none !important;background:rgba(0,0,0,0) !important;resize:none;padding:.5rem .75rem;line-height:1.4;font-size:1rem;color:inherit;scrollbar-width:none;box-shadow:none !important;outline:none !important}.message-field--compact .message-input{font-size:.95rem}.message-field--stacked .message-input{min-height:96px;padding:.35rem 0}.message-input:focus{outline:none;box-shadow:none}.message-input::-webkit-scrollbar{display:none}.message-icon-btn,.btn-attachment,.btn-send,.message-send,.btn-emoji{width:var(--message-action-size, 42px) !important;min-width:var(--message-action-size, 42px) !important;height:var(--message-action-size, 42px) !important;border-radius:50% !important;display:inline-flex !important;align-items:center;justify-content:center;padding:0 !important;aspect-ratio:1/1;flex:0 0 auto;line-height:1;font-size:1.05rem;--bs-btn-padding-x: 0 !important;--bs-btn-padding-y: 0 !important;--bs-btn-border-radius: 50% !important;box-sizing:border-box}.message-send,.btn-send{box-shadow:0 4px 12px rgba(var(--bs-primary-rgb), 0.2)}.message-attach{position:relative}.message-attach .dropdown-menu{margin-top:.35rem;border-radius:16px;padding:.5rem}.message-emoji .dropdown-menu{min-width:260px;padding:0;border-radius:16px;overflow:hidden}.chat-emoji-picker{width:min(340px,90vw);max-width:360px;height:340px;border:none;outline:none;--background-color: var(--bs-body-bg);--text-color: var(--bs-body-color);--category-font-color: var(--bs-secondary-color);--hover-color: var(--bs-secondary-bg);--button-active-background: var(--bs-primary-bg-subtle, var(--bs-primary));--button-hover-background: var(--bs-secondary-bg);--focus-indicator: var(--bs-primary);--border-color: color-mix(in srgb, var(--bs-border-color), transparent 25%);--input-border-color: color-mix(in srgb, var(--bs-border-color), transparent 30%);--input-placeholder-color: var(--bs-secondary-color);--input-focus-border-color: var(--bs-primary);--indicator-color: var(--bs-primary);--rgb-background: var(--bs-body-bg-rgb);--rgb-color: var(--bs-body-color-rgb);--rgb-accent: var(--bs-primary-rgb);--rgb-input: var(--bs-body-bg-rgb);--scrollbar-color: rgba(0, 0, 0, 0.3);--scrollbar-background: rgba(0, 0, 0, 0.05)}.chat-emoji-picker button.favorites{display:none !important}.chat-emoji-picker ::part(tabpanel){scrollbar-width:thin;scrollbar-color:var(--scrollbar-color) var(--scrollbar-background)}.chat-emoji-picker ::part(tabpanel)::-webkit-scrollbar{width:8px}.chat-emoji-picker ::part(tabpanel)::-webkit-scrollbar-track{background:var(--scrollbar-background)}.chat-emoji-picker ::part(tabpanel)::-webkit-scrollbar-thumb{background:var(--scrollbar-color);border-radius:4px}.chat-emoji-picker ::part(tabpanel)::-webkit-scrollbar-thumb:hover{background:rgba(var(--bs-body-color-rgb), 0.4)}[data-bs-theme=dark] .chat-emoji-picker{--background-color: var(--bs-body-bg);--text-color: var(--bs-body-color);--secondary-text-color: var(--bs-secondary-color);--category-emoji-size: 1.125rem;--scrollbar-color: rgba(255, 255, 255, 0.3);--scrollbar-background: rgba(255, 255, 255, 0.05)}.message-field--solo{display:block;border-radius:24px;padding:.75rem 1rem}.message-field--solo .message-input{width:100%;min-height:120px;padding:0}@media(max-width: 576px){.message-field{--message-action-size: 38px;padding:.3rem .35rem;gap:.25rem}.message-field--compact{--message-action-size: 32px;padding:.2rem .25rem}.message-input,.composer-textarea{padding:.4rem .5rem;font-size:.95rem}}.chat-page{position:relative;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-h, 60px));overflow:hidden}.chat-header{flex-shrink:0;z-index:999;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);padding:var(--space-3) var(--space-4)}.chat-header-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.chat-header-title{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.chat-header-title h1{font-size:1.25rem;font-weight:600;margin:0;color:var(--bs-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-title i{font-size:1.5rem;color:var(--bs-primary);flex-shrink:0}.chat-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}@media(max-width: 767.98px){.chat-header{padding:var(--space-2) var(--space-3)}.chat-header-title{gap:var(--space-2)}.chat-header-title h1{font-size:1.125rem}.chat-header-title i{font-size:1.25rem}.chat-header-actions{gap:var(--space-1)}}.chat-container{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden;position:relative}.chat-container>.alert{flex-shrink:0}.chat-messages-scroll,.chat-scroll{flex:1 0 0;overflow-y:auto;overflow-x:hidden;padding:var(--space-3);min-height:0;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 70%) rgba(0,0,0,0)}.chat-messages-scroll:hover,.chat-scroll:hover{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 55%) rgba(0,0,0,0)}.chat-messages-scroll::-webkit-scrollbar,.chat-scroll::-webkit-scrollbar{width:8px}.chat-messages-scroll::-webkit-scrollbar-track,.chat-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.chat-messages-scroll::-webkit-scrollbar-thumb,.chat-scroll::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 75%);border-radius:4px}.chat-messages-scroll:hover::-webkit-scrollbar-thumb,.chat-scroll:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 55%)}.chat-scroll{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.3) color-mix(in srgb, var(--bs-body-color), transparent 75%)}.chat-scroll::-webkit-scrollbar{width:6px;height:6px}.chat-scroll::-webkit-scrollbar-track{background:color-mix(in srgb, var(--bs-body-color), transparent 75%);border-radius:6px}.chat-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);border-radius:6px}.chat-scroll::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.8)}.chat-scroll:hover{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 55%) rgba(0,0,0,0)}[data-bs-theme=dark] .chat-scroll{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 78%) rgba(0,0,0,0)}[data-bs-theme=dark] .chat-scroll:hover{scrollbar-color:color-mix(in srgb, var(--bs-body-color), transparent 60%) rgba(0,0,0,0)}[data-bs-theme=dark] .chat-scroll::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 78%)}[data-bs-theme=dark] .chat-scroll:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--bs-body-color), transparent 60%)}@media(hover: none),(pointer: coarse){.chat-scroll{scrollbar-width:none}.chat-scroll::-webkit-scrollbar{display:none}}.chat-composer-wrapper{flex-shrink:0;margin-top:auto;position:relative;z-index:1;background:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}@media(max-width: 767.98px){.chat-composer-wrapper{position:fixed;bottom:0;left:0;right:0;padding:var(--space-2) var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--bs-border-color);background:var(--bs-body-bg);z-index:1020}.chat-messages-scroll,.chat-scroll{padding:var(--space-2);padding-bottom:calc(70px + env(safe-area-inset-bottom))}}.composer-wrap{display:flex;flex-direction:column;gap:var(--space-1)}.message-field{background:color-mix(in srgb, var(--bs-body-bg) 96%, transparent);border:1px solid color-mix(in srgb, var(--bs-border-color), transparent 30%)}.message-input{max-height:180px}.btn-send{box-shadow:0 4px 16px rgba(var(--bs-primary-rgb), 0.35)}.message-emoji .dropdown-menu{background:var(--bs-body-bg)}.attachment-preview{padding:var(--space-1) 0;max-height:200px;overflow-y:auto;max-width:100%;width:100%}.attachment-item{background:var(--bs-secondary-bg);transition-property:background-color;transition-duration:.15s ease;transition-timing-function:ease;max-width:100%}.attachment-item .flex-grow-1{min-width:0;overflow:hidden}.attachment-item .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bubble .attachment-item{background:rgba(0,0,0,0);padding:0;margin-bottom:8px}.bubble .attachment-item.attachment-item--media{margin-bottom:0}.bubble .attachment-item.attachment-item--media a{display:block;padding:0;line-height:0}.bubble .attachment-item:not(.attachment-item--media) a{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;text-decoration:none;border:none;transition:all .15s ease;max-width:100%;word-break:break-word}.bubble-other .attachment-item a{background:rgba(0,0,0,.05);color:inherit}.bubble-other .attachment-item a:hover{background:rgba(0,0,0,.08)}.bubble-me .attachment-item a{background:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.95)}.bubble-me .attachment-item a:hover{background:hsla(0,0%,100%,.25)}.bubble .attachment-item a i{font-size:1.1rem;flex-shrink:0}.bubble-me .attachment-item a i{color:hsla(0,0%,100%,.9)}.bubble .attachment-item a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.message-attachments video,.message-attachments img,.message-attachments audio{max-width:100%;width:auto;border-radius:6px}.message-attachments:has(.attachment-item--media):not(:has(.attachment-item:not(.attachment-item--media))){margin-top:.25rem}.chat-media{display:block;width:auto;max-width:min(640px,85vw);max-height:520px;border-radius:10px;background:rgba(0,0,0,.08);content-visibility:auto;vertical-align:top}.chat-media--image[style*=aspect-ratio]{width:100% !important;height:auto !important}.message-attachments .attachment-item:not(.attachment-item--media)>a,.message-attachments .attachment-item:not(.attachment-item--media)>video,.message-attachments .attachment-item:not(.attachment-item--media)>img{display:inline-flex;max-width:100%}.chat-media--video{background:#000;object-fit:contain}.chat-media--image{object-fit:cover}.message-pending .chat-media{min-width:90px;min-height:64px}.message-pending .bubble{position:relative;opacity:.8}.message-pending .message-status{color:hsla(0,0%,100%,.8)}.message-failed{opacity:.6}.message-failed .bubble{border:1px solid var(--bs-danger);background:color-mix(in srgb, var(--bs-danger) 10%, transparent)}.message-highlighted{animation:messageHighlight 1s ease-in-out}.message-highlighted .bubble{background:color-mix(in srgb, var(--bs-warning) 20%, var(--bs-secondary-bg)) !important}@keyframes messageHighlight{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}.selection-mode .msg{cursor:pointer;transition:background-color .15s ease}.selection-mode .msg:hover{background:var(--bs-tertiary-bg)}.selection-mode .msg.selected{background:color-mix(in srgb, var(--bs-primary) 10%, transparent)}.selection-mode .msg-select-checkbox{position:absolute;left:var(--space-1);top:50%;transform:translateY(-50%);width:24px;height:24px;border:2px solid var(--bs-border-color);border-radius:50%;background:var(--bs-body-bg);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;z-index:2}.selection-mode .msg-select-checkbox::after{content:"";font-family:"bootstrap-icons";color:#fff;font-size:12px;opacity:0;transform:scale(0);transition:all .15s ease}.selection-mode .msg-select-checkbox.selected{background:var(--bs-primary);border-color:var(--bs-primary)}.selection-mode .msg-select-checkbox.selected::after{opacity:1;transform:scale(1)}.bubble-other .message-status{color:rgba(0,0,0,.5)}.message-attachments .text-secondary{color:inherit;opacity:.7}.bubble-me .message-attachments .text-secondary{color:hsla(0,0%,100%,.9) !important;opacity:1}.bubble-me .message-attachments .fw-semibold{color:hsla(0,0%,100%,.95) !important}.bubble-me .message-attachments i{color:hsla(0,0%,100%,.9) !important}.history-loader{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 0;color:var(--bs-secondary-color)}.history-loader .spinner-border{width:1rem;height:1rem}.dropdown-menu{min-width:200px;border-radius:10px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:8px}.dropdown-item{border-radius:6px;padding:10px 12px;transition-property:background-color;transition-duration:.15s ease;transition-timing-function:ease}.dropdown-item:hover{background:var(--bs-secondary-bg)}.dropdown-item i{width:24px}.composer-tools{display:flex;gap:var(--space-1);align-items:center}.chat-typing-indicator{padding:var(--space-2) var(--space-3);display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--bs-secondary-color);font-style:italic;background:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);flex-shrink:0}.chat-typing-indicator.d-none{display:none !important}.typing-dots{display:inline-flex;align-items:center;gap:4px}.typing-dots span{width:8px;height:8px;border-radius:50%;background:var(--bs-secondary-color);opacity:.6;animation:typingBounce 1.4s infinite both}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-8px)}}.typing-text{font-size:.875rem;color:var(--bs-secondary-color)}.history-loader{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) 0;color:var(--bs-secondary-color);font-size:.875rem}.history-loader .spinner-border{width:1rem;height:1rem;border-width:2px}.history-loader.d-none{display:none !important}.initial-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5) 0;color:var(--bs-secondary-color)}.initial-loader .spinner-border{width:3rem;height:3rem}.initial-loader p{margin-top:var(--space-3);font-size:1rem}.scroll-to-bottom{position:fixed;right:var(--space-3);bottom:calc(var(--space-3) + 80px);z-index:1000;display:none;width:44px;height:44px;border-radius:50%;padding:0 !important;border:none !important;background:var(--bs-primary) !important;color:#fff !important;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:box-shadow .2s ease}.scroll-to-bottom:hover{box-shadow:rgba(var(--bs-primary-rgb), 0.25)}.scroll-to-bottom{transition-property:transform,box-shadow;transition-duration:.15s ease;transition-timing-function:ease;display:inline-flex;align-items:center;justify-content:center;opacity:0;pointer-events:none}.scroll-to-bottom i{font-size:1.25rem}.scroll-to-bottom:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--bs-primary-rgb), 0.35) !important}.scroll-to-bottom:active{transform:scale(0.95)}.scroll-to-bottom.show{display:inline-flex;opacity:1;pointer-events:auto;animation:fadeInUp .3s ease}.scroll-to-bottom{position:relative}.scroll-to-bottom .unread-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 6px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bs-danger);color:#fff;font-size:11px;font-weight:600;line-height:1;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:opacity .15s ease,transform .15s ease;z-index:1}.scroll-to-bottom .unread-badge.badge-hidden{opacity:0;transform:scale(0.5);pointer-events:none}.scroll-to-bottom.has-unread .unread-badge{opacity:1;transform:scale(1);animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,100%{box-shadow:0 2px 8px rgba(var(--bs-danger-rgb), 0.3)}50%{box-shadow:0 2px 12px rgba(var(--bs-danger-rgb), 0.5)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width: 767.98px){.scroll-to-bottom{right:var(--space-2);bottom:calc(var(--space-2) + 70px);width:40px;height:40px}.scroll-to-bottom i{font-size:1.125rem}.scroll-to-bottom .unread-badge{top:-4px;right:-4px;min-width:18px;height:18px;font-size:10px}}.d-flex.msg{align-items:flex-end}.bubble{border-radius:12px;padding:var(--space-1) var(--space-2);word-break:break-word;white-space:pre-line;max-width:70%;box-shadow:0 1px 2px rgba(0,0,0,.06);user-select:text;cursor:text}.bubble>div{white-space:inherit}.bubble .poll-widget,.bubble .poll-question,.bubble .poll-options,.bubble .poll-option,.bubble .poll-footer{white-space:normal}.bubble-me{background:color-mix(in srgb, var(--bs-primary) 92%, #fff 0%);color:#fff}.bubble-other{background:var(--bs-secondary-bg);color:var(--bs-body-color)}.mini-ava{width:32px;height:32px;flex-shrink:0;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.mini-ava img{width:100%;height:100%;object-fit:cover;display:block}.mini-ava i{font-size:20px;color:var(--bs-secondary-color)}.day-divider,.unread-divider{display:flex;align-items:center;justify-content:center;gap:var(--space-1);margin:var(--space-1) 0 var(--space-2);font-size:.85rem;line-height:1;font-weight:700;pointer-events:none;user-select:none}.day-divider::before,.day-divider::after,.unread-divider::before,.unread-divider::after{content:"";flex:1 1 auto;height:1px;background:color-mix(in srgb, var(--bs-border-color), transparent 30%)}.day-divider>span,.unread-divider>span{flex:0 0 auto;padding:0 var(--space-1);background:rgba(0,0,0,0)}.day-divider{color:var(--bs-secondary-color)}.unread-divider{color:var(--bs-danger)}.message-date-group{position:relative;display:flex;flex-direction:column;width:100%}.sticky-date{position:sticky;top:56px;z-index:2;display:flex;align-items:center;justify-content:center;padding:12px 16px;margin:0;font-size:.875rem;font-weight:500;color:var(--bs-secondary);text-align:center;background-color:rgba(0,0,0,0);pointer-events:none;transition:opacity .15s ease,background-color .2s ease}.sticky-date span{display:inline-block;padding:6px 12px;border-radius:12px;background-color:var(--bs-light);pointer-events:all;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:background-color .2s ease,box-shadow .2s ease,transform .15s ease}.sticky-date.interactive span{cursor:pointer;user-select:none}.sticky-date.interactive span:hover{background-color:var(--bs-primary);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);transform:translateY(-1px)}.sticky-date.interactive span:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,.1)}.sticky-date.interactive span:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.sticky-date.is-sticky span{background-color:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.messages-container{display:flex;flex-direction:column;width:100%;gap:0}.message-date-group.loading .sticky-date span{animation:pulse 1.5s ease-in-out infinite;background:linear-gradient(90deg, var(--bs-light) 25%, rgba(0, 0, 0, 0.05) 50%, var(--bs-light) 75%);background-size:200% 100%}@keyframes pulse{0%,100%{background-position:200% 0}50%{background-position:0 0}}@media(max-width: 576px){.sticky-date{top:48px;padding:10px 12px;font-size:.8125rem}.sticky-date span{padding:5px 10px;border-radius:10px}}@media(min-width: 577px)and (max-width: 992px){.sticky-date{top:52px}}@media(prefers-color-scheme: dark){.sticky-date{color:var(--bs-light)}.sticky-date span{background-color:rgba(52,58,64,.95);color:var(--bs-light)}.sticky-date.interactive span:hover{background-color:var(--bs-primary);color:#fff}.sticky-date.is-sticky span{background-color:rgba(52,58,64,.98);backdrop-filter:blur(10px)}}@media(prefers-contrast: high){.sticky-date span{border:1px solid currentColor}}@media(prefers-reduced-motion: reduce){.sticky-date,.sticky-date span{transition:none}}@media print{.sticky-date{position:static;page-break-inside:avoid}.sticky-date.interactive span{cursor:default}}.context-menu{position:absolute;background:#fff;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:4px 0;min-width:200px;z-index:9999}.context-menu button{width:100%;border:none;background:rgba(0,0,0,0);padding:8px 16px;text-align:left;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:8px}.context-menu button:hover{background:#f8f9fa}.context-menu hr{margin:4px 0;border-color:#dee2e6}.chat-row{border-top:1px solid var(--bs-border-color);overflow:hidden;min-height:60px}.chat-row.updated{background:#e3f2fd;transition-property:background;transition-duration:.3s ease;transition-timing-function:ease}.chat-row.pinned{background:#fffbeb;border-left:4px solid var(--bs-warning)}.chat-row .flex-grow-1{min-width:0;overflow:hidden}.chat-row .flex-grow-1 a,.chat-row .flex-grow-1 .card-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.chat-row [data-last-preview],.chat-row .card-subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.chat-row:hover .chat-actions-menu .btn{opacity:1}.chat-section{overflow:visible !important;position:relative;z-index:1}.chat-section:has(.dropdown-menu.show){z-index:1000}.chat-section .card-header{text-align:center;border-bottom:1px solid var(--bs-border-color)}.chat-section .card-header .card-icon{display:none}.chat-section .card-header .card-meta{width:100%;text-align:center}.chat-section .list-chats{overflow:visible !important}.chat-avatar,.card-icon img,.chat-list-wrapper .card-icon,.chat-row .card-icon,.chat-section .card-icon{border-radius:50% !important}.chat-avatar,.card-icon img{width:44px !important;height:44px !important;object-fit:cover;border:2px solid var(--bs-border-color)}.chat-list-wrapper .card-icon,.chat-row .card-icon{width:44px !important;height:44px !important;min-width:44px;min-height:44px;border-radius:50% !important;overflow:hidden}.chat-avatar-group{display:flex;align-items:center}.chat-avatar-group img{margin-left:-8px;border:2px solid #fff;border-radius:50% !important}.chat-avatar-group img:first-child{margin-left:0}.chat-actions-menu{display:flex;align-items:center;flex-shrink:0}.chat-actions-menu .btn{opacity:0;transition-property:opacity;transition-duration:.15s ease;transition-timing-function:ease}.chat-actions-menu .btn:focus,.chat-actions-menu .btn[aria-expanded=true]{opacity:1}.chat-actions-menu .dropdown-menu{font-size:.9rem;min-width:200px;z-index:9999;position:fixed !important}.chat-actions-menu .dropdown-item{padding:.5rem 1rem}.chat-actions-menu .dropdown-item i{width:20px;text-align:center}:root{--chat-sidebar-offset: 120px}.chat-type-sidebar{flex-shrink:0;align-self:flex-start;position:sticky;top:calc(var(--navbar-h, 60px) + var(--chat-sidebar-offset, 120px))}.chat-type-sidebar .card{max-height:calc(100vh - var(--navbar-h, 60px) - var(--chat-sidebar-offset, 120px) - 24px);overflow-y:auto}.chat-type-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;position:relative;cursor:pointer;transition-property:background-color,opacity;transition-duration:.15s ease;transition-timing-function:ease}.chat-type-btn[style*="display: none"]{display:none !important}.chat-type-btn:hover{background-color:var(--bs-light) !important}.chat-type-btn.active{background-color:var(--bs-primary) !important;color:#fff !important}.chat-type-btn.active i{color:#fff}.chat-type-btn.active .badge,.chat-type-btn.active .badge-telegram{background-color:hsla(0,0%,100%,.3) !important;color:#fff !important;border-color:#fff !important}.chat-type-btn .badge,.chat-type-btn .badge-telegram{position:absolute;top:.25rem;right:.25rem;min-width:1.25rem;height:1.25rem;padding:.15rem .3rem;border-radius:50%;font-size:.65rem;line-height:1;display:flex;align-items:center;justify-content:center}@media(max-width: 768px){.chat-list-wrapper{flex-direction:column !important}.chat-type-sidebar{width:100% !important;order:-1;position:static}.chat-type-sidebar .card{max-height:none;overflow:hidden;padding:.25rem .5rem;width:100%}.chat-type-sidebar .list-group{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.5rem;width:100%;overflow-x:auto;overflow-y:hidden;padding:0 .25rem .25rem;scrollbar-width:thin;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.chat-type-btn{flex:0 0 auto;min-width:60px;max-width:80px;padding:.5rem .25rem !important;border-radius:.75rem !important;border:1px solid var(--bs-border-color) !important;scroll-snap-align:start}.chat-type-btn i{font-size:1.25rem !important}.chat-type-btn .badge,.chat-type-btn .badge-telegram{font-size:.6rem;min-width:1.1rem;height:1.1rem}}.reply-preview{font-size:.85rem;padding:4px 8px;background:rgba(0,0,0,.05);border-left:3px solid var(--bs-primary);border-radius:4px}.reply-preview i{color:var(--bs-primary)}.forward-info{font-size:.85rem;color:var(--bs-secondary);font-style:italic}.forward-info i{color:var(--bs-info)}.msg{position:relative}.msg:hover .message-actions{opacity:1}.msg:hover .quick-reactions{opacity:1;pointer-events:all}.msg.new{animation:slideIn .3s ease-out}.msg.system-message{justify-content:center !important}.msg.system-message .bubble{background:#f8f9fa;border:1px dashed #dee2e6;color:#6c757d;text-align:center;font-size:.9rem;font-style:italic}.msg .bubble em.text-muted{font-size:.9rem;opacity:.7}.msg .bubble .bi-pencil-fill{font-size:.7rem;opacity:.6}.msg .bubble .bi-pin-angle-fill{color:var(--bs-warning);font-size:1rem}.message-actions{position:absolute;top:-12px;right:10px;background:#fff;border:1px solid #dee2e6;border-radius:999px;padding:2px 4px;box-shadow:0 1px 3px rgba(0,0,0,.1);opacity:0;transition-property:opacity;transition-duration:.15s ease;transition-timing-function:ease;z-index:10}.message-actions .btn{padding:2px 6px;font-size:.85rem}.reactions{display:flex;gap:4px;flex-wrap:wrap}.reaction-btn{border:1px solid #dee2e6;background:#fff;border-radius:10px;padding:2px 8px;font-size:.9rem;cursor:pointer;transition:all .15s ease}.reaction-btn:hover{background:#f8f9fa;transform:scale(1.1)}.reaction-btn.active{background:#e3f2fd;border-color:var(--bs-primary)}.reaction-btn .count{font-size:.75rem;color:#666;margin-left:2px}.quick-reactions{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);background:#fff;border:1px solid #dee2e6;border-radius:999px;padding:4px 8px;box-shadow:0 2px 4px rgba(0,0,0,.1);opacity:0;pointer-events:none;transition-property:opacity;transition-duration:.15s ease;transition-timing-function:ease;z-index:20;display:flex;gap:4px}.quick-reactions button{border:none;background:rgba(0,0,0,0);font-size:1.1rem;padding:4px 8px;cursor:pointer;border-radius:6px;transition-property:background;transition-duration:.15s ease;transition-timing-function:ease}.quick-reactions button:hover{background:#f0f0f0}.attachments{display:flex;flex-wrap:wrap;gap:8px}.attachment-image{max-width:200px;max-height:200px;border-radius:6px;cursor:pointer;transition-property:transform;transition-duration:.15s ease;transition-timing-function:ease}.attachment-image:hover{transform:scale(1.05)}.attachment-file{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(0,0,0,.05);border-radius:6px;text-decoration:none;color:inherit;font-size:.9rem}.attachment-file:hover{background:rgba(0,0,0,.1)}.chat-list-item{position:relative}.chat-list-item.pinned{background:#fffbeb;border-left:4px solid var(--bs-warning)}.mention-badge{background:#ef4444;color:#fff;border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:bold}.thread-indicator{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--bs-primary);cursor:pointer}.thread-indicator:hover{text-decoration:underline}#typing{padding:4px 12px;font-style:italic}#editing-indicator,#reply-indicator{margin-bottom:8px;border-radius:8px}@keyframes slideIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width: 768px){.message-actions{position:static;opacity:1;margin-top:8px}.quick-reactions{position:static;transform:none;opacity:1;pointer-events:all;margin-top:8px;justify-content:center}.attachment-image{max-width:150px;max-height:150px}}#pollModal .modal-dialog{display:flex;align-items:center;min-height:calc(100% - 1rem)}@media(min-width: 576px){#pollModal .modal-dialog{min-height:calc(100% - 3.5rem);max-width:500px;margin:1.75rem auto}}#pollModal .remove-option{border-top-left-radius:0;border-bottom-left-radius:0}#pollOptions .input-group-text{min-width:40px;justify-content:center;font-weight:600}.poll-widget{padding:1rem;background:var(--bs-secondary-bg);border-radius:6px;margin:.5rem 0}.poll-question{font-size:1.1rem;color:var(--bs-body-color);font-weight:400}.poll-option{position:relative}.poll-option.voted{background:rgba(var(--bs-success-rgb), 0.1);padding:.5rem;border-radius:4px}.poll-option.voted .progress-bar{background-color:var(--bs-success)}.btn-poll-option{transition:all .15s ease}.btn-poll-option:hover{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary);transform:translateX(4px)}.poll-option-result .progress{background-color:rgba(0,0,0,.1)}.poll-option-result .progress-bar{background-color:var(--bs-primary);transition-property:width;transition-duration:.4s ease;transition-timing-function:ease}.poll-footer{border-top:1px solid rgba(0,0,0,.1);padding-top:.75rem}.message-bubble .poll-widget{max-width:500px}.bubble-other .poll-widget{background:var(--bs-secondary-bg)}.bubble-me .poll-widget{background:hsla(0,0%,100%,.15)}.bubble-me .poll-question{color:#fff}.bubble-me .poll-option-result .progress{background-color:hsla(0,0%,100%,.2)}.bubble-me .poll-option-result .progress-bar{background-color:hsla(0,0%,100%,.6)}.bubble-me .poll-footer{border-top-color:hsla(0,0%,100%,.2)}.bubble-me .poll-voters-list{background:hsla(0,0%,100%,.1)}.poll-voters{margin-top:.5rem}.poll-voters-toggle{cursor:pointer;transition:color .2s}.poll-voters-toggle:hover{color:var(--bs-primary) !important;text-decoration:underline !important}.poll-voters-toggle i{transition:transform .2s;font-size:.75rem}.poll-voters-list{animation:slideDown .2s ease-out;background:rgba(0,0,0,.03);padding:.5rem 1rem;border-radius:.25rem;margin-top:.5rem}[data-bs-theme=dark] .poll-voters-list{background:hsla(0,0%,100%,.05)}.voter-item{padding:.25rem 0;display:flex;align-items:center}.voter-item i{opacity:.6;font-size:.875rem}@keyframes slideDown{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.new-messages-indicator{position:absolute;bottom:20px;right:20px;z-index:1000;padding:10px 16px;min-width:180px;background:var(--bs-primary, #0d6efd);color:#fff;border:none;border-radius:24px;box-shadow:0 4px 12px rgba(0,0,0,.15);font-size:14px;font-weight:500;opacity:0;transform:translateY(10px);transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none;display:none;align-items:center;justify-content:center;gap:8px;cursor:pointer}.new-messages-indicator.show{opacity:1;transform:translateY(0);pointer-events:all;animation:pulse .6s ease-in-out}.new-messages-indicator:hover{background:var(--bs-primary-dark, #0a58ca);box-shadow:0 6px 16px rgba(0,0,0,.2);transform:translateY(-2px)}.new-messages-indicator:active{transform:translateY(0) scale(0.98)}.new-messages-indicator svg{width:20px;height:20px;flex-shrink:0}.new-messages-indicator .badge,.new-messages-indicator .badge-telegram{display:inline-block;min-width:20px;padding:2px 6px;font-size:12px;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:10px;background-color:hsla(0,0%,100%,.3);color:#fff;margin:0 4px}.new-messages-indicator.left{right:auto;left:20px}.new-messages-indicator.center{left:50%;right:auto;transform:translateX(-50%) translateY(10px)}.new-messages-indicator.center.show{transform:translateX(-50%) translateY(0)}.new-messages-indicator.center:hover{transform:translateX(-50%) translateY(-2px)}#chatScroll{position:relative}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@media(max-width: 768px){.new-messages-indicator{bottom:15px;right:15px;min-width:160px;padding:8px 14px;font-size:13px}.new-messages-indicator svg{width:18px;height:18px}.new-messages-indicator .badge,.new-messages-indicator .badge-telegram{font-size:11px;min-width:18px;padding:2px 5px}}@media(prefers-color-scheme: dark){.new-messages-indicator{background:#1a73e8;box-shadow:0 4px 12px rgba(0,0,0,.3)}.new-messages-indicator:hover{background:#1557b0}}.selection-mode .msg{cursor:pointer;transition:background-color .2s;position:relative;padding-left:40px !important}.selection-mode .msg.justify-content-end{padding-left:0 !important;padding-right:40px !important}.selection-mode .msg:hover{background-color:rgba(0,123,255,.05)}.msg-select-checkbox{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:2px solid var(--bs-border-color);border-radius:50%;background:var(--bs-body-bg);display:none;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10;flex-shrink:0}.selection-mode .msg-select-checkbox{display:flex}.msg-select-checkbox:hover{border-color:var(--bs-primary);background:color-mix(in srgb, var(--bs-primary), transparent 90%)}.msg-select-checkbox.selected{background:var(--bs-primary);border-color:var(--bs-primary)}.msg-select-checkbox.selected::after{content:"✓";color:#fff;font-size:14px;font-weight:bold}.msg.justify-content-end .msg-select-checkbox{left:auto;right:8px}.msg.selected{background-color:color-mix(in srgb, var(--bs-primary), transparent 90%)}.selection-actions-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bs-body-bg);border-top:2px solid var(--bs-primary);padding:12px 20px;display:none;align-items:center;justify-content:space-between;box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:1050;animation:slideUp .3s ease-out}.selection-actions-bar.active{display:flex}@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.selection-count{font-weight:600;color:var(--bs-primary);font-size:16px}.selection-actions{display:flex;gap:10px}.selection-actions .btn{padding:8px 20px;font-weight:500;border-radius:var(--button-radius);transition:all .2s}.selection-actions .btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.15)}.chat-forward-modal .modal-dialog{max-width:500px}.chat-list-item{padding:12px 16px;border-bottom:1px solid var(--bs-border-color);cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:12px}.chat-list-item:hover{background-color:var(--bs-tertiary-bg)}.chat-list-item:last-child{border-bottom:none}.chat-list-avatar{width:48px;height:48px;border-radius:50%;background:var(--bs-tertiary-bg);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--bs-secondary-color);flex-shrink:0;overflow:hidden;position:relative}.chat-list-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}.chat-list-info{flex:1;min-width:0}.chat-list-name{font-weight:600;color:var(--bs-body-color);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list-subtitle{font-size:13px;color:var(--bs-secondary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list-loading,.chat-list-empty{padding:40px 20px;text-align:center;color:var(--bs-secondary-color)}.chat-forward-search{padding:12px 16px;border-bottom:1px solid var(--bs-border-color)}.chat-forward-search input{width:100%;padding:8px 12px;border:1px solid var(--bs-border-color);border-radius:var(--radius-md);font-size:14px;background:var(--bs-body-bg);color:var(--bs-body-color)}.chat-forward-search input:focus{outline:none;border-color:var(--bs-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--bs-primary), transparent 90%)}.chat-forward-search input::placeholder{color:var(--bs-secondary-color)}.forwarded-indicator{font-size:12px;color:var(--bs-secondary-color);margin-bottom:4px;display:flex;align-items:center;gap:4px;font-style:italic}.forwarded-indicator i{font-size:14px}@media(max-width: 768px){.selection-actions-bar{padding:10px 15px}.selection-count{font-size:14px}.selection-actions .btn{padding:6px 16px;font-size:14px}.msg-select-checkbox{width:20px;height:20px;left:5px}.msg.justify-content-end .msg-select-checkbox{right:5px}.selection-mode .msg{padding-left:32px !important}.selection-mode .msg.justify-content-end{padding-left:0 !important;padding-right:32px !important}}[data-message-id]{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative}.message-context-menu{position:fixed;z-index:9999;background:#fff;border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,.15);min-width:280px;max-width:320px;opacity:0;transform:scale(0.9);transition:opacity .2s ease,transform .2s ease;overflow:hidden}.message-context-menu.show{opacity:1;transform:scale(1)}.message-context-menu::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:-1;opacity:0;transition:opacity .2s ease;pointer-events:none}.message-context-menu.show::before{opacity:1}@media(hover: hover)and (pointer: fine){.message-context-menu::before{display:none}}.message-highlighted{background-color:color-mix(in srgb, var(--bs-primary), transparent 92%) !important;transition:background-color .2s ease}.quick-reactions-panel{position:fixed;z-index:10000;background:#fff;border-radius:24px;box-shadow:0 4px 16px rgba(0,0,0,.12);width:280px;opacity:0;transform:translateY(10px) scale(0.95);transition:opacity .2s ease,transform .2s ease,height .3s ease;pointer-events:none;overflow:hidden}.quick-reactions-panel.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.quick-reactions-wrapper{position:relative;display:flex;align-items:center;justify-content:center;padding:6px 8px}.quick-reactions-list{display:flex;align-items:center;gap:2px;flex-wrap:wrap;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 0;scrollbar-width:none}.quick-reactions-list::-webkit-scrollbar{display:none}.quick-reaction-btn{flex-shrink:0;width:36px;height:36px;border:none;background:rgba(0,0,0,0);border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s cubic-bezier(0.34, 1.56, 0.64, 1);position:relative}.quick-reaction-btn:hover{transform:scale(1.25);background:var(--bs-secondary-bg)}.quick-reaction-btn:active{transform:scale(1.1)}.quick-reaction-btn.quick-reaction-btn-more{opacity:.6;font-size:20px}.quick-reaction-btn.quick-reaction-btn-more i{transition:transform .3s ease}.quick-reaction-btn.quick-reaction-btn-more:hover{opacity:1;transform:scale(1.25)}.quick-reaction-btn.quick-reaction-btn-more:hover i{transform:translateY(3px)}.quick-reaction-btn.quick-reaction-btn-more.expanded i{transform:rotate(180deg)}.quick-reaction-btn{opacity:0;animation:reactionItemAppear .2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards}.quick-reaction-btn:nth-child(1){animation-delay:0.03s}.quick-reaction-btn:nth-child(2){animation-delay:0.06s}.quick-reaction-btn:nth-child(3){animation-delay:0.09s}.quick-reaction-btn:nth-child(4){animation-delay:0.12s}.quick-reaction-btn:nth-child(5){animation-delay:0.15s}.quick-reaction-btn:nth-child(6){animation-delay:0.18s}.quick-reaction-btn:nth-child(7){animation-delay:0.21s}.quick-reaction-btn:nth-child(8){animation-delay:0.24s}.quick-reaction-btn:nth-child(9){animation-delay:0.27s}.quick-reaction-btn:nth-child(10){animation-delay:0.3s}@keyframes reactionItemAppear{from{opacity:0;transform:scale(0.5) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-actions{padding:var(--space-2) 0}.menu-action{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:none;background:rgba(0,0,0,0);cursor:pointer;transition:background-color .15s ease;font-size:15px;color:var(--bs-body-color);text-align:left}.menu-action:hover{background-color:var(--bs-tertiary-bg)}.menu-action:active{background-color:var(--bs-secondary-bg)}.menu-action i{font-size:18px;width:24px;text-align:center;color:var(--bs-secondary-color)}.menu-action span{flex:1;font-weight:500}.menu-action-danger{color:var(--bs-danger)}.menu-action-danger i{color:var(--bs-danger)}.menu-action-danger:hover{background-color:color-mix(in srgb, var(--bs-danger), transparent 95%)}.context-menu-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(0,0,0,.85);color:#fff;padding:var(--space-3) calc(var(--space-3)*2);border-radius:var(--badge-radius);font-size:14px;font-weight:500;z-index:10000;opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none;white-space:nowrap}.context-menu-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}[data-bs-theme=dark] .message-context-menu{background:#2b2d31;box-shadow:0 8px 32px rgba(0,0,0,.4)}[data-bs-theme=dark] .message-highlighted{background-color:rgba(88,101,242,.15) !important}[data-bs-theme=dark] .quick-reactions-panel{background:#2b2d31;box-shadow:0 4px 16px rgba(0,0,0,.4)}[data-bs-theme=dark] .quick-reaction-btn:hover{background:hsla(0,0%,100%,.1)}[data-bs-theme=dark] .menu-action{color:#dbdee1}[data-bs-theme=dark] .menu-action:hover{background-color:#35373c}[data-bs-theme=dark] .menu-action:active{background-color:#3f4147}[data-bs-theme=dark] .menu-action i{color:#b5bac1}[data-bs-theme=dark] .menu-action-danger{color:#f23f43}[data-bs-theme=dark] .menu-action-danger i{color:#f23f43}[data-bs-theme=dark] .menu-action-danger:hover{background-color:rgba(242,63,67,.1)}.message-context-menu-enabled .reaction-button.add-reaction{display:none !important}@keyframes vibrate{0%,100%{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.message-vibrating{animation:vibrate .1s linear}.message-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2);align-items:center}.reaction-button{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--bs-border-color);border-radius:12px;background:var(--bs-body-bg);cursor:pointer;transition:all .2s ease;font-size:14px;line-height:1;box-shadow:0 1px 2px rgba(0,0,0,.05)}.reaction-button:hover{background:var(--bs-secondary-bg);border-color:color-mix(in srgb, var(--bs-border-color), var(--bs-body-color) 30%);box-shadow:0 2px 4px rgba(0,0,0,.1)}.reaction-button.active{background:#e7f3ff;border-color:var(--bs-primary);color:var(--bs-primary);box-shadow:0 2px 4px rgba(var(--bs-primary-rgb), 0.2)}.reaction-button.active:hover{background:#d0e9ff}.reaction-button.active .count{color:var(--bs-primary);font-weight:600}.reaction-button .emoji{font-size:16px;line-height:1}.reaction-button .count{font-size:12px;font-weight:500;color:var(--bs-body-color)}.reaction-button.add-reaction{opacity:0;transition:opacity .2s ease;border-style:dashed}.reaction-button.add-reaction:hover{opacity:1;border-style:solid}@media(hover: hover)and (pointer: fine){[data-message-id]:not(.message-context-menu-enabled):hover .reaction-button.add-reaction,.message-reactions:hover .reaction-button.add-reaction{opacity:1}}.message-reactions:has(.reaction-button:not(.add-reaction)) .add-reaction{opacity:1}.message-context-menu-enabled .reaction-button.add-reaction{display:none}.emoji-picker{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius-md);box-shadow:0 4px 12px rgba(0,0,0,.15);padding:var(--space-2);min-width:200px}.emoji-picker-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:4px}.emoji-picker-button{width:40px;height:40px;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);background:rgba(0,0,0,0);cursor:pointer;font-size:24px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.emoji-picker-button:hover{background:var(--bs-tertiary-bg);border-color:var(--bs-border-color);transform:scale(1.1)}.emoji-picker-button:active{transform:scale(0.95)}@keyframes reactionPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}.reaction-button.new{animation:reactionPop .3s ease}@media(max-width: 576px){.reaction-button{padding:3px 6px;font-size:12px}.reaction-button .emoji{font-size:14px}.reaction-button .count{font-size:11px}.emoji-picker-grid{grid-template-columns:repeat(6, 1fr)}.emoji-picker-button{width:36px;height:36px;font-size:20px}}[data-bs-theme=dark] .reaction-button{background:#2b3035;border-color:#495057;color:#f8f9fa;box-shadow:0 1px 2px rgba(0,0,0,.3)}[data-bs-theme=dark] .reaction-button:hover{background:#343a40;border-color:#6c757d;box-shadow:0 2px 4px rgba(0,0,0,.4)}[data-bs-theme=dark] .reaction-button.active{background:#0d3c61;border-color:#0d6efd;color:#4dabf7;box-shadow:0 2px 4px rgba(13,110,253,.3)}[data-bs-theme=dark] .reaction-button.active:hover{background:#0a4a7d}[data-bs-theme=dark] .reaction-button.active .count{color:#4dabf7;font-weight:600}[data-bs-theme=dark] .emoji-picker{background:#212529;border-color:#495057}[data-bs-theme=dark] .emoji-picker-button:hover{background:#343a40;border-color:#495057}[data-bs-theme=dark] .reaction-users-popup{background:#2b3035;border-color:#495057;box-shadow:0 4px 12px rgba(0,0,0,.5)}[data-bs-theme=dark] .reaction-users-popup .reaction-users-header{border-bottom-color:#495057}[data-bs-theme=dark] .reaction-users-popup .user-name{color:#f8f9fa}[data-bs-theme=dark] .reaction-users-popup .user-name:hover{background:#343a40}.reaction-users-popup{position:fixed;z-index:9999;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.15);min-width:180px;max-width:280px;opacity:0;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.reaction-users-popup.show{opacity:1;transform:translateY(0);pointer-events:all}.reaction-users-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--bs-border-color);font-weight:600}.reaction-users-header .reaction-emoji{font-size:20px}.reaction-users-header .reaction-count{color:var(--bs-secondary);font-size:14px}.reaction-users-list{max-height:200px;overflow-y:auto;padding:4px}.reaction-users-list::-webkit-scrollbar{width:6px}.reaction-users-list::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.reaction-users-list::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:3px}.reaction-users-list::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary)}.user-name{padding:8px 12px;color:var(--bs-body-color);font-size:14px;border-radius:6px;transition:background-color .15s ease}.user-name:hover{background:var(--bs-secondary-bg)}.user-name:not(:last-child){margin-bottom:2px}/*# sourceMappingURL=app.css.map */