.sidebar{background:linear-gradient(180deg,var(--sidebar-bg-2),var(--sidebar-bg));padding:18px 16px;border-right:1px solid rgba(0,0,0,.04);display:flex;flex-direction:column;gap:18px;width:280px;min-height:100vh;transition:width .25s ease;overflow-x:hidden;overflow-y:auto}.sidebar.collapsed{width:88px}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.brand{display:flex;align-items:center;justify-content:center;padding:5px 6px;width:100%;height:70px;transition:height .25s ease,padding .25s ease}.sidebar.collapsed .brand{width:56px;transform:scale(3.05)}.brand-logo{max-width:220px;max-height:160px;width:100%;height:auto;object-fit:contain;transition:width .25s ease,height .25s ease}.sidebar.collapsed .brand-logo{max-width:50px;max-height:50px}.nav-section{display:flex;flex-direction:column;gap:6px}.nav-item-wrapper{display:flex;flex-direction:column}.nav-item,.subitem{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#ffffffe6;cursor:pointer;transition:background .3s ease;width:100%;text-align:left;font-family:inherit;font-size:14px}.nav-item:hover,.subitem:hover{background:#ffffff59}.nav-item.active,.subitem.active{background:#ffffff8c;box-shadow:0 6px 16px #0f172a0f}.nav-item.has-submenu.open{background:transparent}.nav-item.has-submenu.open:hover{background:#ffffff59}.nav-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.nav-label{font-size:14px;font-weight:600;flex:1;color:#ffffffe6;white-space:nowrap;overflow:hidden;transition:opacity .25s ease,width .25s ease}.sidebar.collapsed .nav-label{opacity:0;width:0;pointer-events:none}.section-title{margin-top:14px;padding:0 12px;font-size:11px;letter-spacing:.12em;color:#ffffff8c}.sidebar.collapsed .section-title{display:none}.submenu{display:flex;flex-direction:column;gap:6px;margin-left:34px;margin-top:6px}.submenu-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:none;background:#ffffff14;color:#fff;cursor:pointer;transition:background .3s ease;width:100%;text-align:left;font-family:inherit;font-size:13px}.submenu-item:hover{background:#ffffff2e}.submenu-item.active{background:#ffffff59}.submenu-icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.nav-item .badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#ef4444;color:#fff;font-size:11px;font-weight:600;border-radius:10px;margin-left:auto;transition:opacity .25s ease}.sidebar.collapsed .nav-item .badge{position:absolute;top:8px;right:8px;min-width:18px;height:18px;padding:0 5px;font-size:10px}@media (max-width: 768px){.sidebar{position:fixed;left:0;top:0;z-index:100;transform:translate(-100%)}.sidebar:not(.collapsed){transform:translate(0)}}.topbar{background:var(--topbar-bg);padding:14px 18px;display:flex;align-items:center;gap:16px}.topbar-search{display:flex;align-items:center;gap:10px;background:#ffffff8c;border-radius:14px;padding:10px 14px;max-width:400px;min-width:800px}.topbar-spacer{flex:1}.search-icon{width:20px;height:20px;color:var(--muted);flex-shrink:0}.search-input{flex:1;border:none;background:transparent;font-size:14px;color:var(--text);outline:none}.search-input::placeholder{color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-icon-btn{width:42px;height:42px;border-radius:14px;background:#ffffff8c;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .2s ease,transform .2s ease}.topbar-icon-btn:hover{background:#ffffffbf;transform:scale(1.05)}.edge-toggle{position:absolute;top:25px;left:265px;background:transparent!important;border:none!important;outline:none!important;box-shadow:none!important;padding:0;margin:0;width:28px;height:28px;display:grid;place-items:center;cursor:pointer;z-index:50;transition:left .25s ease}.edge-toggle:focus,.edge-toggle:active,.edge-toggle:focus-visible{background:transparent!important;outline:none!important;box-shadow:none!important}.edge-arrow{width:20px;height:20px;object-fit:contain;opacity:.9}.edge-toggle:hover .edge-arrow{opacity:1;transform:scale(1.05)}.app.collapsed .edge-toggle{left:74px}.topbar-icon-btn img{width:22px;height:22px;object-fit:contain}.notification-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--badge);color:var(--badgeText);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.topbar-user{position:relative}.user-card{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:16px;background:#ffffff59;border:none;cursor:pointer;transition:background .2s ease}.user-card:hover{background:#ffffff80}.user-avatar{width:36px;height:36px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--badge)}.user-info{text-align:left}.user-name{font-size:14px;font-weight:600;color:#fff;line-height:1.2}.user-role{font-size:12px;color:#ffffffb3;line-height:1.2}.user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--panel-bg);border-radius:14px;box-shadow:0 8px 32px #00000026;padding:8px;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:none;background:transparent;color:var(--text);font-size:14px;text-decoration:none;cursor:pointer;width:100%;text-align:left;transition:background .2s ease}.user-menu-item:hover{background:var(--pill)}.user-menu-item img,.user-menu-item svg{width:20px;height:20px;object-fit:contain}.user-menu-item.logout{color:var(--error)}.user-menu-item.logout:hover{background:#ef44441a}.user-menu-divider{height:1px;background:var(--border);margin:8px 0}.user-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}@media (max-width: 768px){.topbar-search{max-width:none}.user-info{display:none}.user-card{padding:6px}}.chat-bubble{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--primary, #4A90D9);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #00000026;z-index:1000;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.chat-bubble:hover{transform:scale(1.1);box-shadow:0 6px 20px #00000040;background:var(--primary-dark, #3a7bc8)}.chat-bubble:active{transform:scale(1.05)}.chat-bubble:focus{outline:none;box-shadow:0 0 0 3px #4a90d966,0 4px 12px #00000026}.chat-bubble svg{width:28px;height:28px}.chat-bubble-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:#e74c3c;color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 4px #0003;animation:badgePulse 2s infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width: 768px){.chat-bubble{bottom:16px;right:16px;width:52px;height:52px}.chat-bubble svg{width:24px;height:24px}}.room-list-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;border-bottom:1px solid var(--border);background:var(--surface);transition:background .2s}.room-list-item:hover{background:var(--background)}.room-list-item.active{background:#1976d214;border-left:3px solid var(--primary);padding-left:17px}.room-name{display:flex;align-items:center;gap:4px}.room-pin-icon{width:12px;height:12px;opacity:.5;flex-shrink:0}.room-avatar{position:relative;width:48px;height:48px;border-radius:50%;flex-shrink:0;overflow:hidden;background:#1976d214;display:flex;align-items:center;justify-content:center}.online-indicator{position:absolute;bottom:2px;right:2px;width:10px;height:10px;background:#4caf50;border:2px solid var(--surface);border-radius:50%}.room-avatar-img{width:100%;height:100%;object-fit:cover}.room-avatar-initials{font-size:16px;font-weight:600;color:var(--primary);text-transform:uppercase}.room-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.room-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-name{margin:0;font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-time{font-size:12px;color:var(--muted);white-space:nowrap;flex-shrink:0}.room-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-last-message{flex:1;min-width:0}.message-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.message-preview.empty{font-style:italic;color:var(--muted)}.room-unread-badge{min-width:20px;height:20px;padding:0 6px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--badge);color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.room-list-item.active .room-name,.room-list-item.active .message-preview,.room-list-item.active .room-time{color:var(--primary)}.room-header-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.room-menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:4px;opacity:.5;transition:opacity .15s,background .15s}.room-list-item:hover .room-menu-btn,.room-menu-btn:focus{opacity:1}.room-menu-btn:hover{background:var(--border);color:var(--text)}.room-context-menu{position:absolute;top:100%;right:0;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;padding:4px 0;margin-top:4px}.room-context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--text);font-size:14px;cursor:pointer;text-align:left;transition:background .15s}.room-context-menu-item:hover{background:var(--background)}.room-context-menu-item--danger{color:#e53935}.room-context-menu-item--danger:hover{background:#e5393514}.room-context-menu-item svg{flex-shrink:0}.room-context-menu-item .menu-icon{width:16px;height:16px;flex-shrink:0;object-fit:contain}.room-context-menu-divider{height:1px;background:var(--border);margin:4px 0}.room-header{position:relative}.room-list{display:flex;flex-direction:column;height:100%;background:var(--surface)}.room-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface);height:72px;box-sizing:border-box;flex-shrink:0}.room-list-title{margin:0;font-size:20px;font-weight:600;color:var(--text)}.btn-create-chat{display:flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:6px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-create-chat:hover{background:var(--primary-dark)}.btn-create-chat:active{transform:scale(.98)}.btn-create-icon{font-size:16px;font-weight:600}.btn-create-text{font-size:13px}.room-search{padding:12px 20px;border-bottom:1px solid var(--border);background:var(--background)}.room-search-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text);background:var(--surface);transition:border-color .2s}.room-search-input:focus{outline:none;border-color:var(--primary)}.room-search-input::placeholder{color:var(--muted)}.room-list-body{flex:1;overflow-y:auto;overflow-x:hidden}.room-list-items{display:flex;flex-direction:column}.room-list-loading,.room-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.room-list-loading p,.room-list-empty .empty-message{margin:0;color:var(--muted);font-size:14px}.btn-create-first{margin-top:16px;padding:8px 16px;border:1px solid var(--primary);border-radius:6px;background:transparent;color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-create-first:hover{background:var(--primary);color:#fff}.room-list-footer{padding:16px 20px;height:78px;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border);background:var(--surface)}.chat-stats{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--text-secondary)}.chat-stat strong{color:var(--text);font-weight:600}.chat-stat-divider{color:var(--border)}.room-list-body::-webkit-scrollbar{width:6px}.room-list-body::-webkit-scrollbar-track{background:transparent}.room-list-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.room-list-body::-webkit-scrollbar-thumb:hover{background:var(--muted)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border);min-height:72px}.chat-header-content{display:flex;align-items:center;gap:12px;flex:1}.chat-header-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all .2s;flex-shrink:0;margin-right:4px}.chat-header-back:hover{background:var(--background);color:var(--text)}.chat-header-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.chat-header-avatar img{width:100%;height:100%;object-fit:cover}.chat-header-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;font-weight:600;font-size:18px}.chat-header-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.chat-header-name{font-size:16px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-participants,.chat-header-status{font-size:13px;color:var(--text-secondary)}.chat-header-status.online{color:#4caf50}.chat-header-typing{font-size:13px;color:var(--primary);font-style:italic}.chat-header-info-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all .2s;flex-shrink:0}.chat-header-info-btn:hover{background:var(--background);color:var(--text)}.chat-header-loading,.chat-header-error{font-size:14px;color:var(--text-secondary)}.chat-header-error{color:var(--error)}.chat-header-settings{position:relative;flex-shrink:0}.chat-header-settings-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;cursor:pointer;border-radius:50%;transition:all .2s;padding:0}.chat-header-settings-btn:hover{background:var(--background)}.chat-header-settings-btn .settings-icon{width:20px;height:20px;color:var(--text-secondary);transition:color .2s}.chat-header-settings-btn:hover .settings-icon{color:var(--text)}.chat-header-menu{position:absolute;top:100%;right:0;margin-top:8px;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:1000;overflow:hidden;animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chat-header-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.chat-header-menu-item:hover{background:var(--background)}.chat-header-menu-item.active{background:var(--primary-light, rgba(74, 144, 217, .1));color:var(--primary)}.chat-header-menu-item .menu-icon{width:18px;height:18px;color:var(--text-secondary);flex-shrink:0;transition:color .15s}.chat-header-menu-item:hover .menu-icon{color:var(--text)}.chat-header-menu-item.active .menu-icon{color:var(--primary)}.chat-header-menu-item span{flex:1}.chat-header-menu-item--danger:hover{background:#e539351a;color:#e53935}.chat-header-menu-item--danger:hover .menu-icon{color:#e53935}.chat-header-actions{display:flex;align-items:center;gap:4px;margin-right:8px}.chat-header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all .2s}.chat-header-action-btn:hover{background:var(--background);color:var(--primary)}.chat-header-action-btn:active{transform:scale(.95)}.chat-header-actions-dropdown{position:relative}.chat-header-dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:1000;overflow:hidden;animation:menuFadeIn .15s ease}.chat-header-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.chat-header-dropdown-item:hover{background:var(--background)}.chat-header-dropdown-item img{flex-shrink:0;opacity:.7}.chat-header-dropdown-item:hover img{opacity:1}.chat-header-dropdown-item span{flex:1}.message-reactions{display:flex;align-items:center;gap:4px;margin-top:4px;flex-wrap:wrap}.message-reactions-list{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.message-reaction{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border);background:var(--background);border-radius:12px;cursor:pointer;font-size:14px;transition:all .2s}.message-reaction:hover:not(:disabled){background:var(--background-hover);border-color:var(--primary)}.message-reaction--active{background:var(--primary-light);border-color:var(--primary)}.message-reaction:disabled{opacity:.6;cursor:wait}.message-reaction-emoji{font-size:16px;line-height:1}.message-reaction-count{font-size:12px;font-weight:500;color:var(--text-secondary)}.message-reaction--active .message-reaction-count{color:var(--primary)}.message-reactions-add-wrapper{position:relative}.message-reactions-add{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px dashed var(--border);background:transparent;color:var(--text-secondary);border-radius:14px;cursor:pointer;transition:all .2s;opacity:.6}.message-reactions-add:hover,.message-reactions-add:focus{opacity:1}.message-reactions-add:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.message-reactions-add:disabled{opacity:.6;cursor:wait}.message-reactions-picker{position:absolute;bottom:100%;left:50%;transform:translate(-50%);display:flex;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 4px 12px #00000026;z-index:10;margin-bottom:4px}.message-reactions-picker-item{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;font-size:20px;cursor:pointer;border-radius:50%;transition:all .15s}.message-reactions-picker-item:hover{background:var(--background-hover);transform:scale(1.2)}.message-reactions-list+.message-reactions-add-wrapper .message-reactions-add{opacity:.5}.message-reactions-list+.message-reactions-add-wrapper:hover .message-reactions-add{opacity:1}@keyframes reaction-pop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.message-reaction{animation:reaction-pop .2s ease-out}@media (max-width: 480px){.message-reactions-picker{padding:4px}.message-reactions-picker-item{width:28px;height:28px;font-size:18px}}.voice-message{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--background);border-radius:12px;min-width:200px;max-width:300px}.voice-message--own{background:#1976d21a}.voice-message-play{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:var(--primary);color:#fff;cursor:pointer;border-radius:50%;transition:all .2s;flex-shrink:0}.voice-message-play:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.05)}.voice-message-play:disabled{opacity:.6;cursor:wait}.voice-message--own .voice-message-play{background:var(--primary)}.voice-message-spinner{stroke:currentColor;stroke-dasharray:31.4;stroke-dashoffset:10}.voice-message-content{flex:1;min-width:0}.voice-message-progress{position:relative;height:6px;background:var(--border);border-radius:3px;cursor:pointer;margin-bottom:4px}.voice-message-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--primary);border-radius:3px;transition:width .1s linear}.voice-message-progress-handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;background:var(--primary);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .1s;opacity:0}.voice-message-progress:hover .voice-message-progress-handle{opacity:1}.voice-message-time{display:flex;align-items:center;gap:2px;font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums}@media (max-width: 480px){.voice-message{min-width:160px;max-width:240px}.voice-message-play{width:36px;height:36px}}.message-item{display:flex;gap:8px;padding:4px 16px;position:relative;justify-content:flex-start}.message-item.own{flex-direction:row-reverse;justify-content:flex-start}.message-item.deleted{opacity:.6}.message-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;align-self:flex-end}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;font-weight:600;font-size:14px}.message-content{display:flex;flex-direction:column;gap:2px;max-width:60%;position:relative}.message-item.own .message-content{align-items:flex-end}.message-sender{font-size:13px;font-weight:500;color:var(--text-secondary);padding:0 12px}.message-bubble{background:#d1d1d0;border-radius:16px;padding:10px 14px;box-shadow:0 1px 2px #0000001a;word-wrap:break-word;overflow-wrap:break-word;position:relative;color:#333}.message-bubble.own{background:#b4dcf9;color:#333}.message-text{font-size:15px;line-height:1.5;white-space:pre-wrap}.message-bubble.emoji-only .message-text{font-size:36px;line-height:1.3;background:transparent}.message-bubble.emoji-only{background:transparent!important;box-shadow:none;padding:4px 8px}.message-meta{display:flex;align-items:center;gap:6px;margin-top:4px}.message-time{font-size:11px;opacity:.7}.message-edited{font-size:11px;font-style:italic;opacity:.6}.message-status{display:inline-flex;align-items:center;margin-left:2px}.message-status svg{flex-shrink:0}.message-reply-preview{background:#0000000d;border-left:3px solid rgba(0,0,0,.2);padding:6px 10px;margin-bottom:6px;border-radius:8px;font-size:13px}.message-bubble.own .message-reply-preview{background:#00000014;border-left-color:#0000004d}.message-reply-author{font-weight:600;margin-bottom:2px}.message-reply-text{opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-attachments{display:flex;flex-direction:column;gap:6px;margin-top:8px}.message-attachment-image-link{display:block;border-radius:8px;overflow:hidden;line-height:0}.message-attachment-image{max-width:300px;max-height:300px;width:100%;height:auto;object-fit:cover;border-radius:8px;cursor:pointer;transition:opacity .2s}.message-attachment-image:hover{opacity:.9}.message-attachment-video{max-width:300px;max-height:200px;border-radius:8px;background:#000}.message-attachment-file{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#0000000d;border-radius:8px;text-decoration:none;color:inherit;transition:background .2s;font-size:13px;cursor:pointer}.message-bubble.own .message-attachment-file{background:#00000014}.message-attachment-file:hover{background:#0000001f}.message-attachment-file svg{flex-shrink:0}.message-attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-link{color:#1976d2;text-decoration:underline;word-break:break-all}.message-bubble.own .message-link{color:#0b57d0}.message-bubble.own .message-link:hover{color:#0842a0}.message-actions{display:flex;gap:4px;position:absolute;top:-28px;right:0;background:var(--surface);border-radius:12px;padding:4px;box-shadow:0 2px 8px #00000026;opacity:0;animation:fadeIn .2s forwards}@keyframes fadeIn{to{opacity:1}}.message-item.own .message-actions{right:auto;left:0}.message-actions button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;transition:all .2s}.message-actions button:hover:not(:disabled){background:var(--background);color:var(--text)}.message-actions button:disabled{opacity:.4;cursor:not-allowed}.message-edit{display:flex;flex-direction:column;gap:8px;width:100%}.message-edit textarea{width:100%;min-height:60px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;background:#00000005}.message-bubble.own .message-edit textarea{background:#fffc;color:var(--text)}.message-edit textarea:focus{outline:none;border-color:var(--primary)}.message-edit-actions{display:flex;gap:8px;justify-content:flex-end}.message-edit-actions button{padding:6px 16px;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.message-edit-actions button:first-child{background:transparent;color:var(--text-secondary)}.message-edit-actions button:first-child:hover:not(:disabled){background:#0000000d}.message-edit-actions button:last-child{background:var(--primary);color:#fff}.message-edit-actions button:last-child:hover:not(:disabled){background:var(--primary-dark)}.message-edit-actions button:disabled{opacity:.6;cursor:not-allowed}.message-deleted{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:var(--muted);font-style:italic}.message-deleted svg{flex-shrink:0}.message-mention{background:#4a90d926;color:var(--primary);padding:1px 4px;border-radius:4px;font-weight:500;cursor:pointer;transition:background .15s}.message-mention:hover{background:#4a90d940}.message-bubble.own .message-mention{background:#4a90d933;color:#1565c0}.message-bubble.own .message-mention:hover{background:#4a90d94d}.message-bubble.entity-link{padding:0;background:var(--surface);overflow:hidden}.message-bubble.own.entity-link{background:var(--surface)}.entity-link-card{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}.entity-link-card:hover{background:var(--background)}.entity-link-icon{font-size:24px;flex-shrink:0}.entity-link-info{display:flex;flex-direction:column;flex:1;min-width:0}.entity-link-type{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.entity-link-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-link-arrow{font-size:18px;color:var(--text-secondary);flex-shrink:0}.message-bubble.own.entity-link .entity-link-card{color:var(--text)}.message-bubble.own.entity-link .message-meta{padding:0 16px 12px}.message-pinned-indicator{position:absolute;top:-4px;right:4px;font-size:12px;opacity:.7}.message-item.own .message-pinned-indicator{right:auto;left:4px}.message-highlight{animation:highlightPulse 2s ease-out}@keyframes highlightPulse{0%{background-color:#0b57d04d}to{background-color:transparent}}.message-list{flex:1;min-height:0;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:4px;background:var(--background)}.message-list-date-group{display:flex;flex-direction:column;gap:4px}.message-list-date-label{text-align:center;font-size:13px;color:var(--text-secondary);padding:8px 16px;margin:12px 0;background:var(--surface);border-radius:12px;display:inline-block;align-self:center;box-shadow:0 1px 2px #0000001a}.message-list-load-more{display:flex;justify-content:center;padding:12px 0;margin-bottom:12px}.message-list-load-more button{padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--primary);font-size:14px;cursor:pointer;transition:all .2s}.message-list-load-more button:hover:not(:disabled){background:var(--background);border-color:var(--primary)}.message-list-load-more button:disabled{opacity:.6;cursor:not-allowed}.message-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--muted)}.message-list-empty-icon{color:var(--border)}.message-list-empty p{font-size:18px;font-weight:500;color:var(--text-secondary);margin:0}.message-list-empty span{font-size:14px;color:var(--muted)}.message-list-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:20px}.message-list-error-text{font-size:16px;color:var(--error);text-align:center}.message-list-error button{padding:10px 20px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:background .2s}.message-list-error button:hover{background:var(--primary-dark)}.message-list::-webkit-scrollbar{width:6px}.message-list::-webkit-scrollbar-track{background:transparent}.message-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.message-list::-webkit-scrollbar-thumb:hover{background:var(--muted)}.emoji-picker-popup{position:absolute;z-index:1000;width:320px;max-height:360px;display:flex;flex-direction:column;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden}.emoji-picker-popup--top{bottom:calc(100% + 8px);left:0}.emoji-picker-popup--bottom{top:calc(100% + 8px);left:0}.emoji-picker-search{padding:8px;border-bottom:1px solid var(--border, #e0e0e0)}.emoji-picker-search-input{width:100%;padding:8px 12px;border:1px solid var(--border, #e0e0e0);border-radius:8px;font-size:14px;background:var(--background, #f5f5f5);color:var(--text, #333);outline:none;transition:border-color .2s}.emoji-picker-search-input:focus{border-color:var(--primary, #1976d2)}.emoji-picker-search-input::placeholder{color:var(--text-secondary, #999)}.emoji-picker-categories{display:flex;padding:4px 8px;gap:2px;border-bottom:1px solid var(--border, #e0e0e0);background:var(--background, #f9f9f9)}.emoji-picker-category{flex:1;display:flex;align-items:center;justify-content:center;padding:6px;border:none;background:transparent;font-size:16px;cursor:pointer;border-radius:6px;transition:all .2s;opacity:.6}.emoji-picker-category:hover{background:var(--background-hover, #e8e8e8);opacity:1}.emoji-picker-category--active{background:var(--primary-light, rgba(25, 118, 210, .1));opacity:1}.emoji-picker-grid{flex:1;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;overflow-y:auto;max-height:240px}.emoji-picker-item{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;font-size:22px;cursor:pointer;border-radius:6px;transition:all .15s}.emoji-picker-item:hover{background:var(--background-hover, #e8e8e8);transform:scale(1.15)}.emoji-picker-grid::-webkit-scrollbar{width:6px}.emoji-picker-grid::-webkit-scrollbar-track{background:transparent}.emoji-picker-grid::-webkit-scrollbar-thumb{background:var(--border, #ccc);border-radius:3px}.emoji-picker-grid::-webkit-scrollbar-thumb:hover{background:var(--text-secondary, #999)}@media (max-width: 400px){.emoji-picker-popup{position:fixed;bottom:60px;left:8px;right:8px;width:auto;max-height:50vh}.emoji-picker-grid{grid-template-columns:repeat(7,1fr)}.emoji-picker-item{width:40px;height:40px;font-size:24px}}.voice-recorder{display:flex;align-items:center;gap:8px}.voice-recorder--idle{position:relative}.voice-recorder--starting{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:var(--background);border-radius:20px}.voice-recorder-loading{display:flex;align-items:center;gap:8px}.voice-recorder-loading-dot{width:8px;height:8px;background:var(--primary);border-radius:50%;animation:loading-pulse 1s ease-in-out infinite}@keyframes loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}.voice-recorder-loading-text{font-size:13px;color:var(--text-secondary)}.voice-recorder-error{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--error);color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:10}.voice-recorder-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all .2s;flex-shrink:0}.voice-recorder-btn:hover{background:var(--background)}.voice-recorder-btn--start:hover{color:var(--primary)}.voice-recorder-btn--cancel{color:var(--text-secondary)}.voice-recorder-btn--cancel:hover{color:var(--error);background:#f4433614}.voice-recorder-btn--stop{color:var(--error);background:#f443361a}.voice-recorder-btn--stop:hover{background:#f4433633}.voice-recorder-btn--send{color:var(--primary);background:#1976d21a}.voice-recorder-btn--send:hover{background:#1976d233}.voice-recorder--recording{flex:1;background:#f443360d;border-radius:20px;padding:4px 8px}.voice-recorder-indicator{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.voice-recorder-dot{width:10px;height:10px;background:var(--error);border-radius:50%;animation:pulse 1s ease-in-out infinite}.voice-recorder-rec-icon{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.voice-recorder-time{font-size:14px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;min-width:40px}.voice-recorder--preview{flex:1;background:var(--background);border-radius:20px;padding:4px 8px}.voice-recorder-preview-player{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.voice-recorder-preview-duration{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums}.voice-recorder--video{flex-direction:column;position:relative}.voice-recorder-video-live,.voice-recorder-video-preview{width:100%;max-height:300px;border-radius:12px;background:#000;object-fit:cover}.voice-recorder-video-live{transform:scaleX(-1)}.voice-recorder-controls{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:4px 0}@media (max-width: 480px){.voice-recorder--recording,.voice-recorder--preview{padding:2px 4px}.voice-recorder-btn{width:36px;height:36px}}.message-input-container{display:flex;flex-direction:column;background:var(--surface);border-top:1px solid var(--border)}.message-input-files{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--background)}.message-input-file-item{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:200px}.message-input-file-preview{width:40px;height:40px;object-fit:cover;border-radius:4px;flex-shrink:0}.message-input-video-preview{position:relative}.message-input-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px}.message-input-file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.message-input-file-name{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.message-input-file-remove{width:20px;height:20px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.message-input-file-remove:hover{background:var(--border);color:var(--error)}.message-input-reply{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--background);border-bottom:1px solid var(--border)}.message-input-reply-content{flex:1;overflow:hidden}.message-input-reply-label{font-size:12px;color:var(--text-secondary);margin-bottom:2px}.message-input-reply-text{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-input-reply-cancel{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all .2s;flex-shrink:0;margin-left:12px}.message-input-reply-cancel:hover{background:var(--border);color:var(--text)}.message-input{display:flex;align-items:flex-end;gap:6px;padding:8px 10px;padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.mi-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;transition:color .2s,background .2s;-webkit-tap-highlight-color:transparent;padding:0}.mi-btn:hover:not(:disabled){background:var(--background);color:var(--primary)}.mi-btn:disabled{opacity:.4;cursor:not-allowed}.mi-btn-action--send{color:var(--primary)}.mi-btn-action--send:hover:not(:disabled){background:#1976d21a}.mi-field-wrapper{position:relative;flex:1;display:flex;align-items:flex-end;border:1px solid var(--border);border-radius:20px;background:var(--surface);transition:border-color .2s;overflow:hidden;min-width:0}.mi-field-wrapper:focus-within{border-color:var(--primary)}.mi-textarea{flex:1;min-height:38px;max-height:120px;padding:8px 0 8px 14px;border:none;font-family:inherit;font-size:15px;line-height:1.4;resize:none;overflow-y:auto;background:transparent;color:var(--text);box-sizing:border-box;outline:none}.mi-textarea::placeholder{color:var(--muted)}.mi-textarea:disabled{cursor:not-allowed}.mi-textarea::-webkit-scrollbar{width:4px}.mi-textarea::-webkit-scrollbar-track{background:transparent}.mi-textarea::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.mi-emoji-wrapper{position:relative;flex-shrink:0;display:flex;align-items:flex-end}.mi-btn-emoji{display:flex;align-items:center;justify-content:center;width:36px;height:38px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:color .2s;-webkit-tap-highlight-color:transparent;padding:0}.mi-btn-emoji:hover:not(:disabled){color:var(--primary)}.mi-btn-emoji:disabled{opacity:.4;cursor:not-allowed}.mention-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;right:0;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000}.mention-dropdown-loading,.mention-dropdown-empty,.mention-dropdown-hint{padding:12px 16px;font-size:13px;color:var(--text-secondary);text-align:center}.mention-dropdown-list{list-style:none;margin:0;padding:4px 0}.mention-dropdown-item{display:flex;align-items:center;gap:12px;padding:8px 16px;cursor:pointer;transition:background .15s}.mention-dropdown-item:hover,.mention-dropdown-item--selected{background:var(--background)}.mention-dropdown-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;overflow:hidden}.mention-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.mention-dropdown-info{display:flex;flex-direction:column;overflow:hidden}.mention-dropdown-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-dropdown-username{font-size:12px;color:var(--text-secondary)}.mi-spinner{animation:mi-spin 1s linear infinite}@keyframes mi-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px;background:linear-gradient(135deg,var(--background) 0%,var(--border) 100%);overflow-y:auto}.empty-chat-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:500px;margin-bottom:60px}.empty-chat-icon{margin-bottom:24px;animation:float 3s ease-in-out infinite}.empty-chat-icon img{width:120px;height:120px;object-fit:contain;opacity:.3}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-chat-title{font-size:28px;font-weight:600;color:var(--text);margin:0 0 12px}.empty-chat-description{font-size:16px;color:var(--text-secondary);line-height:1.6;margin:0 0 32px}.empty-chat-button{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--primary);border:none;border-radius:24px;color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s;box-shadow:0 4px 12px #1976d266}.empty-chat-button:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 16px #1976d280}.empty-chat-button:active{transform:translateY(0)}.empty-chat-button img{width:20px;height:20px}.empty-chat-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;width:100%;max-width:900px}.empty-chat-feature{display:flex;gap:16px;padding:24px;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 4px 12px #0000000d;transition:all .3s}.empty-chat-feature:hover{background:#fffffff2;transform:translateY(-4px);box-shadow:0 8px 20px #0000001a}.empty-chat-feature-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--primary);border-radius:12px}.empty-chat-feature-icon img{width:32px;height:32px;object-fit:contain}.empty-chat-feature-text{flex:1}.empty-chat-feature-text h3{font-size:16px;font-weight:600;color:var(--text);margin:0 0 6px}.empty-chat-feature-text p{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0}@media (max-width: 768px){.empty-chat{padding:20px}.empty-chat-content{margin-bottom:40px}.empty-chat-title{font-size:24px}.empty-chat-description{font-size:14px}.empty-chat-features{grid-template-columns:1fr}}.empty-chat::-webkit-scrollbar{width:6px}.empty-chat::-webkit-scrollbar-track{background:transparent}.empty-chat::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.empty-chat::-webkit-scrollbar-thumb:hover{background:#0000004d}.create-chat-modal{width:600px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column}.create-chat-modal .modal-body{flex:1;overflow-y:auto;padding:20px}.chat-type-tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid var(--border)}.chat-type-tab{flex:1;padding:12px 20px;background:none;border:none;border-bottom:3px solid transparent;font-size:15px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s;position:relative;bottom:-2px}.chat-type-tab:hover:not(:disabled){color:var(--text);background:var(--background)}.chat-type-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.chat-type-tab:disabled{cursor:not-allowed;opacity:.6}.error-message{background:#f443361a;color:var(--error);padding:12px;border-radius:6px;margin-bottom:15px;font-size:14px;border-left:4px solid var(--error)}.direct-chat-form .form-group{margin-bottom:15px}.direct-chat-form label{display:block;margin-bottom:8px;font-weight:500;color:var(--text)}.direct-chat-form .form-control{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;transition:border-color .2s;background:var(--surface);color:var(--text)}.direct-chat-form .form-control:focus{outline:none;border-color:var(--primary)}.direct-chat-form .form-control:disabled{background:var(--background);cursor:not-allowed}.search-loading{text-align:center;padding:20px;color:var(--text-secondary);font-size:14px}.search-results{border:1px solid var(--border);border-radius:6px;max-height:300px;overflow-y:auto;background:var(--surface)}.search-result-item{display:flex;align-items:center;padding:12px;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--background)}.search-result-item.selected{background:#1976d214}.search-result-item .user-avatar{width:40px;height:40px;border-radius:50%;margin-right:12px;flex-shrink:0;overflow:hidden}.search-result-item .user-avatar img{width:100%;height:100%;object-fit:cover}.search-result-item .avatar-placeholder{width:100%;height:100%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.search-result-item .user-info{flex:1}.search-result-item .user-name{font-weight:500;color:var(--text);margin-bottom:4px}.search-result-item .user-email{font-size:13px;color:var(--text-secondary)}.search-result-item .selected-indicator{width:24px;height:24px;background:var(--success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;margin-left:10px}.no-results{text-align:center;padding:30px;color:var(--muted);font-size:14px}.group-chat-form .form-group{margin-bottom:15px}.group-chat-form label{display:block;margin-bottom:8px;font-weight:500;color:var(--text)}.group-chat-form label .required{color:var(--error);margin-left:2px}.group-chat-form .form-control{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;transition:border-color .2s;font-family:inherit;background:var(--surface);color:var(--text)}.group-chat-form .form-control:focus{outline:none;border-color:var(--primary)}.group-chat-form .form-control:disabled{background:var(--background);cursor:not-allowed}.group-chat-form textarea.form-control{resize:vertical;min-height:60px}.selected-members{margin-bottom:15px;padding:12px;background:var(--background);border-radius:6px}.selected-members-label{font-size:13px;color:var(--text-secondary);margin-bottom:10px;font-weight:500}.selected-members-list{display:flex;flex-wrap:wrap;gap:8px}.selected-member{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--primary);color:#fff;border-radius:16px;font-size:13px}.selected-member .remove-member{background:none;border:none;color:#fff;font-size:18px;line-height:1;cursor:pointer;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.selected-member .remove-member:hover:not(:disabled){background:#0003}.selected-member .remove-member:disabled{cursor:not-allowed;opacity:.6}@media (max-width: 768px){.create-chat-modal{width:95vw;max-height:90vh}.chat-type-tab{padding:10px 15px;font-size:14px}.search-result-item .user-avatar{width:36px;height:36px}.search-result-item .avatar-placeholder{font-size:16px}}.forward-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.forward-modal{width:400px;max-width:90vw;max-height:80vh;background:var(--surface);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 40px #0003}.forward-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.forward-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.forward-modal-close{width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);font-size:20px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.forward-modal-close:hover{background:var(--background-hover);color:var(--text)}.forward-modal-preview{padding:12px 20px;background:var(--background);border-bottom:1px solid var(--border)}.forward-modal-preview-sender{font-size:12px;font-weight:500;color:var(--primary);margin-bottom:4px}.forward-modal-preview-text{font-size:14px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forward-modal-search{padding:12px 20px;border-bottom:1px solid var(--border)}.forward-modal-search input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.forward-modal-search input:focus{border-color:var(--primary)}.forward-modal-search input::placeholder{color:var(--text-secondary)}.forward-modal-list{flex:1;overflow-y:auto;padding:8px 0;min-height:200px;max-height:300px}.forward-modal-empty{padding:40px 20px;text-align:center;color:var(--text-secondary);font-size:14px}.forward-modal-room{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .15s}.forward-modal-room:hover{background:var(--background-hover)}.forward-modal-room.selected{background:var(--primary-light)}.forward-modal-room-radio{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.forward-modal-room.selected .forward-modal-room-radio{border-color:var(--primary)}.forward-modal-room-radio span.checked{width:10px;height:10px;background:var(--primary);border-radius:50%}.forward-modal-room-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0;overflow:hidden}.forward-modal-room-avatar img{width:100%;height:100%;object-fit:cover}.forward-modal-room-info{flex:1;min-width:0}.forward-modal-room-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forward-modal-room-type{font-size:12px;color:var(--text-secondary);margin-top:2px}.forward-modal-actions{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.forward-modal-btn{flex:1;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.forward-modal-btn:disabled{opacity:.5;cursor:not-allowed}.forward-modal-btn--cancel{background:var(--background);color:var(--text)}.forward-modal-btn--cancel:hover:not(:disabled){background:var(--background-hover)}.forward-modal-btn--confirm{background:var(--primary);color:#fff}.forward-modal-btn--confirm:hover:not(:disabled){opacity:.9}@media (max-width: 480px){.forward-modal{width:100%;max-width:100%;max-height:100%;height:100%;border-radius:0}.forward-modal-list{max-height:none;flex:1}}.chat-search{display:flex;flex-direction:column;height:100%;width:100%;background:var(--surface)}.chat-search-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.chat-search-input-wrapper{flex:1;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--background);border-radius:10px}.chat-search-icon{flex-shrink:0;color:var(--text-secondary)}.chat-search-input{flex:1;border:none;background:transparent;font-size:15px;color:var(--text);outline:none}.chat-search-input::placeholder{color:var(--text-secondary)}.chat-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:var(--text-secondary);color:var(--surface);font-size:14px;cursor:pointer;border-radius:50%;transition:background .2s}.chat-search-clear:hover{background:var(--text)}.chat-search-close{border:none;background:transparent;color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;padding:8px}.chat-search-close:hover{text-decoration:underline}.chat-search-results{flex:1;overflow-y:auto;padding:12px 0}.chat-search-loading,.chat-search-empty,.chat-search-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.chat-search-empty-icon,.chat-search-hint-icon{font-size:48px;margin-bottom:16px}.chat-search-empty-text{font-size:16px;font-weight:500;color:var(--text);margin-bottom:4px}.chat-search-empty-hint,.chat-search-hint-text{font-size:14px;color:var(--text-secondary)}.chat-search-count{padding:8px 16px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.chat-search-list{display:flex;flex-direction:column}.chat-search-result{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .2s}.chat-search-result:hover{background:var(--background-hover)}.chat-search-result:last-child{border-bottom:none}.chat-search-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.chat-search-result-sender{font-size:14px;font-weight:500;color:var(--text)}.chat-search-result-time{font-size:12px;color:var(--text-secondary)}.chat-search-result-content{font-size:14px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-search-highlight{background:#ffeb3b66;color:var(--text);padding:0 2px;border-radius:2px}.chat-search-load-more{display:block;width:calc(100% - 32px);margin:12px 16px;padding:10px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;border-radius:8px;transition:all .2s}.chat-search-load-more:hover:not(:disabled){background:var(--background-hover);color:var(--text)}.chat-search-load-more:disabled{opacity:.6;cursor:wait}@media (prefers-color-scheme: dark){.chat-search-highlight{background:#ffeb3b4d}}.media-panel{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;width:100%;height:100%;background:var(--surface);z-index:50}.media-panel-header{display:flex;align-items:center;gap:8px;padding:16px;border-bottom:1px solid var(--border);min-height:56px}.media-panel-header h3{flex:1;margin:0;font-size:16px;font-weight:600}.media-panel-back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;transition:all .2s}.media-panel-back:hover{background:var(--background-hover);color:var(--text)}.media-panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);font-size:20px;cursor:pointer;border-radius:4px;transition:all .2s}.media-panel-close:hover{background:var(--background-hover);color:var(--text)}.media-panel-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.media-panel-categories{display:flex;flex-direction:column}.media-panel-row{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}.media-panel-row:hover{background:var(--background-hover)}.media-panel-row-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--primary-light);color:var(--primary);border-radius:10px;flex-shrink:0}.media-panel-row-icon svg{width:20px;height:20px}.media-panel-row-label{flex:1;font-size:15px;font-weight:500;color:var(--text)}.media-panel-row-count{font-size:14px;color:var(--text-secondary)}.media-panel-row-arrow{font-size:18px;color:var(--text-secondary)}.media-panel-content-scroll{flex:1;overflow-y:auto;padding:0}.media-panel-search{padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:5}.media-panel-search-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.media-panel-search-input:focus{border-color:var(--primary)}.media-panel-search-input::placeholder{color:var(--text-secondary)}.media-panel-date-group{padding:0 12px}.media-panel-date-label{padding:12px 4px 8px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;background:var(--surface);z-index:2}.media-panel-loading,.media-panel-empty{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-secondary);font-size:14px;text-align:center}.media-panel-grid{display:grid;gap:4px}.media-panel-grid--images{grid-template-columns:repeat(3,1fr)}.media-panel-grid--videos{grid-template-columns:repeat(2,1fr)}.media-panel-image{aspect-ratio:1;overflow:hidden;border-radius:4px;cursor:pointer;background:var(--background)}.media-panel-image img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.media-panel-image:hover img{transform:scale(1.05)}.media-panel-video{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:4px;cursor:pointer;background:#000}.media-panel-video video{width:100%;height:100%;object-fit:cover}.media-panel-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000004d;opacity:1;transition:opacity .2s}.media-panel-video:hover .media-panel-video-overlay{opacity:.8}.media-panel-video-play{font-size:24px;color:#fff}.media-panel-video-duration{position:absolute;bottom:4px;right:4px;padding:2px 6px;background:#000000b3;color:#fff;font-size:11px;border-radius:2px}.media-panel-list{display:flex;flex-direction:column;gap:2px;padding:0 12px 12px}.media-panel-file,.media-panel-voice,.media-panel-link{display:flex;align-items:flex-start;gap:12px;padding:10px;background:var(--background);border-radius:8px;cursor:pointer;transition:background .2s}.media-panel-file:hover,.media-panel-voice:hover,.media-panel-link:hover{background:var(--background-hover)}.media-panel-file-icon,.media-panel-voice-icon,.media-panel-link-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--primary-light);color:var(--primary);border-radius:8px;flex-shrink:0}.media-panel-file-icon svg,.media-panel-voice-icon svg,.media-panel-link-icon svg{width:20px;height:20px}.media-panel-file-info,.media-panel-voice-info,.media-panel-link-info{flex:1;min-width:0}.media-panel-file-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-panel-file-meta,.media-panel-voice-meta,.media-panel-link-meta{font-size:12px;color:var(--text-secondary);margin-top:2px}.media-panel-voice-duration{font-size:14px;font-weight:500;color:var(--text)}.media-panel-file-download{display:flex;align-items:center;justify-content:center;width:32px;height:32px;text-decoration:none;color:var(--primary);border-radius:50%;transition:background .2s}.media-panel-file-download:hover{background:var(--border)}.media-panel-link-url{display:block;font-size:14px;color:var(--primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-panel-link-url:hover{text-decoration:underline}.media-panel-link-context{font-size:12px;color:var(--text);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.media-panel-group{display:flex;align-items:center;gap:12px;padding:10px;background:var(--background);border-radius:8px;cursor:pointer;transition:background .2s}.media-panel-group:hover{background:var(--background-hover)}.media-panel-group-avatar{width:44px;height:44px;border-radius:50%;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;overflow:hidden;flex-shrink:0}.media-panel-group-avatar img{width:100%;height:100%;object-fit:cover}.media-panel-group-info{flex:1;min-width:0}.media-panel-group-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-panel-group-count{font-size:12px;color:var(--text-secondary);margin-top:2px}.media-panel-load-more{width:calc(100% - 24px);margin:12px;padding:10px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;border-radius:8px;transition:all .2s}.media-panel-load-more:hover:not(:disabled){background:var(--background-hover);color:var(--text)}.media-panel-load-more:disabled{opacity:.6;cursor:wait}@media (max-width: 768px){.media-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;z-index:100}}.add-members-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.add-members-modal{width:400px;max-width:90vw;max-height:80vh;background:var(--surface);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.add-members-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.add-members-modal-title{font-size:16px;font-weight:600;color:var(--text)}.add-members-modal-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;line-height:1}.add-members-modal-close:hover{color:var(--text)}.add-members-modal-search{padding:12px 20px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}.add-members-search-icon{color:var(--text-secondary);flex-shrink:0}.add-members-modal-search input{flex:1;border:none;background:none;font-size:14px;color:var(--text);outline:none}.add-members-modal-search input::placeholder{color:var(--text-secondary)}.add-members-modal-list{flex:1;overflow-y:auto;padding:8px 0;min-height:200px;max-height:400px}.add-members-modal-loading,.add-members-modal-empty{display:flex;align-items:center;justify-content:center;height:100px;color:var(--text-secondary);font-size:14px}.add-members-modal-user{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .2s}.add-members-modal-user:hover{background:var(--surface-hover)}.add-members-modal-user input{display:none}.add-members-checkbox{width:20px;height:20px;border:2px solid var(--border);border-radius:4px;position:relative;flex-shrink:0;transition:all .2s}.add-members-modal-user input:checked+.add-members-checkbox{background:var(--primary);border-color:var(--primary)}.add-members-modal-user input:checked+.add-members-checkbox:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.add-members-user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.add-members-user-avatar img{width:100%;height:100%;object-fit:cover}.add-members-user-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary);font-weight:600;font-size:16px}.add-members-user-info{flex:1;min-width:0}.add-members-user-name{display:block;font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-members-user-position{display:block;font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-members-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.add-members-cancel{padding:8px 20px;background:none;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text);cursor:pointer;transition:all .2s}.add-members-cancel:hover{background:var(--surface-hover)}.add-members-submit{padding:8px 20px;background:var(--primary);border:none;border-radius:6px;font-size:14px;color:#fff;cursor:pointer;transition:background .2s}.add-members-submit:hover:not(:disabled){background:var(--primary-dark)}.add-members-submit:disabled{opacity:.5;cursor:not-allowed}.group-settings-panel{position:absolute;top:0;right:0;width:360px;height:100%;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:100;box-shadow:-2px 0 8px #0000001a}.group-settings-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border);background:var(--surface)}.group-settings-back{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7}.group-settings-back:hover{opacity:1}.group-settings-title{flex:1;font-size:16px;font-weight:600;color:var(--text)}.group-settings-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.group-settings-close:hover{color:var(--text)}.group-settings-loading{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary)}.group-settings-error{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#fee;color:#c00;font-size:13px}.group-settings-error button{background:none;border:none;color:#c00;font-size:18px;cursor:pointer}.group-settings-content{flex:1;overflow-y:auto;padding:16px}.group-settings-avatar-section{display:flex;flex-direction:column;align-items:center;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:16px}.group-settings-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;cursor:pointer;position:relative}.group-settings-avatar img{width:100%;height:100%;object-fit:cover}.group-settings-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;font-size:32px;font-weight:600}.group-settings-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.group-settings-avatar:hover .group-settings-avatar-overlay{opacity:1}.group-settings-change-photo{margin-top:8px;background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer}.group-settings-change-photo:hover{text-decoration:underline}.group-settings-section{padding:16px 0;border-bottom:1px solid var(--border)}.group-settings-section:last-child{border-bottom:none}.group-settings-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.group-settings-section-title{font-size:14px;font-weight:600;color:var(--text)}.group-settings-section-hint{font-size:12px;color:var(--text-secondary);margin-left:8px}.group-settings-label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.group-settings-name-row{display:flex;gap:8px}.group-settings-name-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;color:var(--text);background:var(--surface)}.group-settings-name-input:focus{outline:none;border-color:var(--primary)}.group-settings-save-btn{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.group-settings-save-btn:hover:not(:disabled){background:var(--primary-dark)}.group-settings-save-btn:disabled{opacity:.5;cursor:not-allowed}.group-settings-permissions{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.group-settings-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--text)}.group-settings-checkbox input{display:none}.group-settings-checkbox .checkmark{width:18px;height:18px;border:2px solid var(--border);border-radius:4px;position:relative;transition:all .2s}.group-settings-checkbox input:checked+.checkmark{background:var(--primary);border-color:var(--primary)}.group-settings-checkbox input:checked+.checkmark:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.group-settings-add-member-btn{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer}.group-settings-add-member-btn:hover{text-decoration:underline}.group-settings-members{display:flex;flex-direction:column;gap:8px}.group-settings-member{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;transition:background .2s}.group-settings-member:hover{background:var(--surface-hover)}.group-settings-member-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.group-settings-member-avatar img{width:100%;height:100%;object-fit:cover}.group-settings-member-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary);font-weight:600;font-size:16px}.group-settings-member-info{flex:1;display:flex;flex-direction:column;min-width:0}.group-settings-member-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-settings-member-role{font-size:12px;color:var(--text-secondary)}.group-settings-member-role.owner{color:#f59e0b}.group-settings-member-role.admin{color:var(--primary)}.group-settings-member-actions{display:flex;align-items:center;gap:4px;position:relative}.group-settings-member-action{width:28px;height:28px;border:none;background:transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px}.group-settings-member-action:hover{background:var(--surface-hover)}.group-settings-member-action.remove:hover{background:#fee;color:#c00}.group-settings-member-menu{position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 8px #00000026;z-index:10;min-width:160px}.group-settings-member-menu button{display:block;width:100%;padding:10px 16px;text-align:left;background:none;border:none;font-size:13px;color:var(--text);cursor:pointer}.group-settings-member-menu button:hover{background:var(--surface-hover)}@media (max-width: 768px){.group-settings-panel{width:100%}}.chat-core{display:flex;height:100%;background:var(--surface, #fff)}.chat-core--full{flex-direction:row}.chat-core--full .chat-core-sidebar{width:320px;min-width:280px;max-width:400px;border-right:1px solid var(--border, #e0e0e0);display:flex;flex-direction:column;overflow:hidden}.chat-core--full .chat-core-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;position:relative}.chat-core--compact{flex-direction:column}.chat-core--compact .chat-core-conversation{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.chat-core--compact .room-list{height:100%}.chat-core--compact .message-list,.chat-core--full .chat-core-main .message-list{flex:1;min-height:0;overflow-y:auto}.chat-core--compact .message-input{flex-shrink:0}@media (max-width: 768px){.chat-core--full{flex-direction:column}.chat-core--full .chat-core-sidebar{width:100%;max-width:none;border-right:none;border-bottom:1px solid var(--border, #e0e0e0)}.chat-core--full .chat-core-sidebar.hidden{display:none}.chat-core--full .chat-core-main{display:flex}}.chat-drawer{position:fixed;top:0;right:0;height:100vh;background:var(--surface, #fff);border-left:1px solid var(--border, #e0e0e0);z-index:999;display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000001a;animation:slideIn .25s ease-out}.chat-drawer.resizing{transition:none;-webkit-user-select:none;user-select:none}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-drawer-resize-handle{position:absolute;left:-4px;top:0;width:8px;height:100%;cursor:ew-resize;z-index:10;display:flex;align-items:center;justify-content:center}.chat-drawer-resize-handle:hover .chat-drawer-resize-grip,.chat-drawer.resizing .chat-drawer-resize-grip{opacity:1;background:var(--primary, #4A90D9)}.chat-drawer-resize-grip{width:4px;height:48px;background:var(--border, #e0e0e0);border-radius:2px;opacity:0;transition:opacity .2s,background .2s}.chat-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border, #e0e0e0);background:var(--surface, #fff);flex-shrink:0}.chat-drawer-title{margin:0;font-size:16px;font-weight:600;color:var(--text, #333)}.chat-drawer-actions{display:flex;align-items:center;gap:4px}.chat-drawer-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:background .15s,color .15s}.chat-drawer-btn:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.chat-drawer-btn--close:hover{background:#e539351a;color:#e53935}.chat-drawer-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}@media (max-width: 768px){.chat-drawer{width:100%!important}.chat-drawer-resize-handle{display:none}}.chat-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:998;animation:fadeIn .2s ease-out}.app{display:grid;grid-template-columns:auto 1fr;height:100vh;overflow:hidden;transition:grid-template-columns .25s ease}.main{display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden}.content{background:var(--panel-bg);margin:18px;border-radius:20px;box-shadow:var(--shadow);flex:1;min-height:0;padding:22px 24px;overflow:auto;transition:background .3s ease}.content.no-padding{padding:0}.content::-webkit-scrollbar{width:8px;height:8px}.content::-webkit-scrollbar-track{background:transparent}.content::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.content::-webkit-scrollbar-thumb:hover{background:var(--muted)}.app.chat-docked .main{transition:margin-right .25s ease}@media (max-width: 768px){.app.chat-docked .main{margin-right:0!important}}@media (max-width: 1024px){.content{margin:12px;padding:16px 18px;border-radius:16px}}@media (max-width: 768px){.app{grid-template-columns:1fr}.content{margin:8px;padding:12px 14px;border-radius:12px}}.login-page{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#207513d9,#197ab9)}.login-container{background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000040;padding:40px;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:260px;height:auto;margin-bottom:12px;object-fit:contain}.login-header p{margin:0;color:#757575;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{padding:12px;background:#ffebee;color:#c62828;border-radius:4px;font-size:14px;text-align:center}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:#424242}.form-group input{padding:12px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#197ab9}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.login-button{padding:14px;background:linear-gradient(135deg,#207513d9,#197ab9);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .2s}.login-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.login-button:disabled{opacity:.6;cursor:not-allowed}.home-page.ui-kit{padding:24px;max-width:1400px;margin:0 auto}.home-page .page-header{margin-bottom:32px}.home-page .page-header h1{margin:0 0 8px;font-size:28px;color:var(--text)}.home-page .page-subtitle{margin:0;color:var(--muted);font-size:16px}.ui-kit-sections{display:flex;flex-direction:column;gap:24px}.ui-kit-section{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.ui-kit .section-title{padding:16px 20px;margin:0;font-size:16px;font-weight:600;background:var(--background);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;color:var(--text)}.ui-kit .section-content{padding:24px}.ui-kit-subsection{margin-bottom:24px}.ui-kit-subsection:last-child{margin-bottom:0}.subsection-label{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:12px;text-transform:uppercase;letter-spacing:.3px}.subsection-content{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.ui-kit .btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.ui-kit .btn-primary{background:#3186a8;color:#fff}.ui-kit .btn-primary:hover{background:#286d8a}.ui-kit .btn-secondary{background:var(--background);color:var(--text);border:1px solid var(--border)}.ui-kit .btn-secondary:hover{background:var(--border)}.ui-kit .btn-danger{background:var(--error);color:#fff}.ui-kit .btn-danger:hover{background:#d32f2f}.ui-kit .btn-success{background:var(--success);color:#fff}.ui-kit .btn-success:hover{background:#388e3c}.ui-kit .btn:disabled{opacity:.5;cursor:not-allowed}.ui-kit .btn-loading{position:relative;color:transparent}.ui-kit .btn-loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid white;border-radius:50%;border-top-color:transparent;animation:spin .8s linear infinite}.ui-kit .btn-icon{padding:8px;border:none;background:transparent;cursor:pointer;border-radius:4px;font-size:16px;color:var(--muted);transition:all .2s}.ui-kit .btn-icon:hover{background:var(--background);color:var(--text)}.ui-kit .btn-icon.btn-danger{background:transparent;color:var(--muted)}.ui-kit .btn-icon.btn-danger:hover{background:transparent;color:var(--error)}.ui-kit .btn-icon img{width:18px;height:18px;object-fit:contain}.ui-kit .table-actions-cell{display:flex;gap:4px;align-items:center}.ui-kit .form-group{display:flex;flex-direction:column;gap:6px;min-width:200px}.ui-kit .form-label{font-size:13px;font-weight:500;color:var(--text)}.ui-kit .form-label .required{color:var(--error);margin-left:2px}.ui-kit .form-input{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);transition:border-color .2s;height:40px;box-sizing:border-box}.ui-kit .form-input:focus{outline:none;border-color:var(--primary)}.ui-kit .form-input.error{border-color:var(--error)}.ui-kit .form-error{font-size:12px;color:var(--error)}.ui-kit .form-textarea{resize:vertical;min-height:80px}.ui-kit .form-select{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);cursor:pointer}.ui-kit .form-select:focus{outline:none;border-color:var(--primary)}.ui-kit .checkbox-group,.ui-kit .radio-group{display:flex;flex-direction:column;gap:8px}.ui-kit .checkbox-item,.ui-kit .radio-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text)}.ui-kit .checkbox-item input,.ui-kit .radio-item input{width:16px;height:16px;cursor:pointer}.ui-kit .input-with-button{display:flex;gap:8px}.ui-kit .input-with-button .form-input{flex:1}.ui-kit .search-field{position:relative;min-width:300px}.ui-kit .search-field .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);width:16px;height:16px;display:flex;align-items:center;justify-content:center}.ui-kit .search-field .search-icon img{width:100%;height:100%;object-fit:contain}.ui-kit .search-field .form-input{padding-left:36px;width:100%}.ui-kit .table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.ui-kit .table-actions{display:flex;gap:12px;align-items:center}.ui-kit .table-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ui-kit .table-container{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.ui-kit .data-table{width:100%;border-collapse:collapse}.ui-kit .data-table th,.ui-kit .data-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.ui-kit .data-table th{background:var(--background);font-weight:600;color:var(--text);font-size:13px;text-transform:uppercase;letter-spacing:.3px}.ui-kit .data-table tr:hover{background:#00000005}.ui-kit .data-table tr.selected{background:#1976d214}.ui-kit .data-table tr.row-warning{background:#ff980014}.ui-kit .data-table tr.row-expired{background:#f4433614}.ui-kit .data-table tr.row-new{background:#1976d214}.ui-kit .table-photo{width:40px;height:40px;object-fit:cover;border-radius:6px}.ui-kit .table-photo-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--background);border-radius:6px;color:var(--muted)}.ui-kit .table-photo-placeholder-img{width:40px;height:40px;object-fit:contain;border-radius:6px;background:var(--background);padding:8px}.ui-kit .table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--background);border-top:1px solid var(--border);font-size:14px;color:var(--muted)}.ui-kit .table-pagination{display:flex;align-items:center;gap:8px}.ui-kit .badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.ui-kit .badge-new{background:#1976d21f;color:#1976d2}.ui-kit .badge-progress{background:#ff98001f;color:#f57c00}.ui-kit .badge-done{background:#4caf501f;color:#388e3c}.ui-kit .badge-rejected{background:#f443361f;color:#d32f2f}.ui-kit .badge-pending{background:#9e9e9e1f;color:#616161}.ui-kit .badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;background:var(--badge);color:#fff}.ui-kit .status-item{display:flex;align-items:center;gap:6px;font-size:14px}.ui-kit .status-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}.ui-kit .status-icon img{width:100%;height:100%;object-fit:contain}.ui-kit .priority-item{display:flex;align-items:center;gap:8px;font-size:14px}.ui-kit .priority-dot{width:10px;height:10px;border-radius:50%}.ui-kit .priority-dot.high{background:var(--error)}.ui-kit .priority-dot.medium{background:var(--warning)}.ui-kit .priority-dot.low{background:var(--success)}.ui-kit .notification{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:6px;margin-bottom:12px}.ui-kit .notification:last-child{margin-bottom:0}.ui-kit .notification-success{background:#4caf501a;border-left:4px solid #4caf50;color:#2e7d32}.ui-kit .notification-warning{background:#ff98001a;border-left:4px solid #ff9800;color:#e65100}.ui-kit .notification-error{background:#f443361a;border-left:4px solid #f44336;color:#c62828}.ui-kit .notification-info{background:#2196f31a;border-left:4px solid #2196f3;color:#1565c0}.ui-kit .notification-icon{font-size:18px}.ui-kit .notification-message{flex:1}.ui-kit .notification-close{background:none;border:none;cursor:pointer;color:inherit;opacity:.6;font-size:16px;padding:4px}.ui-kit .notification-close:hover{opacity:1}.ui-kit .states-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.ui-kit .state-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;background:var(--background);border-radius:8px;text-align:center;min-height:160px}.ui-kit .state-icon{width:48px;height:48px;margin-bottom:12px}.ui-kit .state-icon img{width:100%;height:100%;object-fit:contain}.ui-kit .state-text{font-size:14px;color:var(--muted);margin-bottom:12px}.ui-kit .spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.ui-kit .icons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px}.ui-kit .icon-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--background);border-radius:8px;text-align:center}.ui-kit .icon-preview{width:32px;height:32px;display:flex;align-items:center;justify-content:center}.ui-kit .icon-preview img{width:100%;height:100%;object-fit:contain}.ui-kit .icon-name{font-size:11px;color:var(--muted)}.ui-kit .demo-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.ui-kit .demo-modal{background:var(--surface);border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #0000004d}.ui-kit .demo-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.ui-kit .demo-modal-title{font-size:18px;font-weight:600;color:var(--text);margin:0}.ui-kit .demo-modal-close{background:none;border:none;font-size:24px;color:var(--muted);cursor:pointer;padding:0;line-height:1}.ui-kit .demo-modal-close:hover{color:var(--text)}.ui-kit .demo-modal-body{padding:20px}.ui-kit .demo-modal-body .form-group{margin-bottom:16px}.ui-kit .demo-modal-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ui-kit .demo-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border);background:var(--background)}body.dark .ui-kit-section{background:var(--surface)}body.dark .section-title{background:var(--background)}body.dark .ui-kit .data-table tr:hover{background:#ffffff05}body.dark .ui-kit .state-card,body.dark .ui-kit .icon-item{background:var(--surface)}.reference-table-container{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.reference-table{width:100%;border-collapse:collapse}.reference-table th,.reference-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e0e0e0}.reference-table th{background:#f5f5f5;font-weight:600;color:#424242;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.reference-table tbody tr:hover{background:#f8f9fa}.reference-table tbody tr.clickable-row{cursor:pointer}.reference-table tbody tr.clickable-row:hover{background:#e3f2fd}.reference-table tbody tr:last-child td{border-bottom:none}.col-num{width:50px;text-align:center!important;color:#9e9e9e}.col-actions{width:130px;text-align:center!important}.btn-view:hover{background:#4caf501a}.btn-edit:hover{background:#1976d21a}.btn-delete:hover{background:#d32f2f1a}.reference-table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#757575;background:#fff;border-radius:8px}.reference-table-empty{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#9e9e9e;font-size:15px;background:#fff;border-radius:8px}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:#212121}.modal-close{width:32px;height:32px;border:none;background:none;font-size:24px;color:#757575;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.modal-close:hover{background:#f5f5f5;color:#212121}.required{color:#d32f2f;margin-left:4px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f5f5f5;color:#9e9e9e}.radio-group{display:flex;gap:20px}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400}.radio-label input[type=radio]{width:auto;margin:0}.error-message{display:block;margin-top:6px;font-size:12px;color:#d32f2f}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.btn:active{transform:scale(.98)}.modal-large{max-width:800px;width:90%}.modal-tabs{display:flex;gap:0;border-bottom:1px solid #dee2e6;padding:0 20px;background:#f8f9fa}.modal-tab{padding:12px 20px;border:none;background:none;cursor:pointer;font-size:14px;color:#6c757d;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.modal-tab.active{color:#1976d2;border-bottom-color:#1976d2;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.loading-state,.empty-state{padding:40px 20px;text-align:center;color:#6c757d;font-size:14px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{padding:12px;text-align:left;border-bottom:1px solid #dee2e6}.data-table th{background:#f8f9fa;font-weight:600;color:#495057}.data-table tbody tr:hover{background:#f8f9fa}.data-table tbody tr:last-child td{border-bottom:none}.field-with-action{display:flex;gap:8px;align-items:center}.field-with-action select{flex:1}.btn-add-inline{padding:8px;border:1px solid #e0e0e0;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-add-inline:hover{background:#f5f5f5;border-color:#1976d2}.btn-add-inline img{width:20px;height:20px}.inline-add-form{margin-top:10px;padding:12px;background:#f8f9fa;border-radius:6px;border:1px solid #e0e0e0}.inline-add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-add-row input{flex:1;min-width:150px;padding:8px 12px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px}.inline-add-row input:focus{outline:none;border-color:#1976d2}.btn-sm{padding:8px 12px!important;font-size:13px!important}.object-info{padding:10px 0}.info-row{display:flex;padding:12px 0;border-bottom:1px solid #eee}.info-row:last-child{border-bottom:none}.info-label{min-width:150px;font-weight:500;color:#495057}.info-value{color:#212529}@media (max-width: 600px){.form-row{grid-template-columns:1fr}.modal-tabs{flex-wrap:wrap;padding:0 10px}.modal-tab{padding:10px 15px;font-size:13px}.info-row{flex-direction:column;gap:4px}.info-label{min-width:auto}}.dadata-search{margin-bottom:20px;padding:16px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px}.dadata-search-input{display:flex;gap:12px}.dadata-search-input input{flex:1;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;font-family:Consolas,Monaco,monospace}.dadata-search-input input:focus{outline:none;border-color:#1976d2}.dadata-search-input input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-dadata{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#4caf50;border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.btn-dadata:hover:not(:disabled){background:#43a047}.btn-dadata:disabled{background:#bdbdbd;cursor:not-allowed}.dadata-icon{font-size:16px}.dadata-error{margin-top:12px;padding:10px 12px;background:#ffebee;border:1px solid #ef9a9a;border-radius:6px;color:#c62828;font-size:13px}.dadata-result{margin-top:16px;padding:16px;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:8px}.dadata-result-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.dadata-result-icon{color:#2e7d32;font-size:18px}.dadata-result-title{font-weight:500;color:#2e7d32}.dadata-status{margin-left:auto;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.dadata-status.status-active{background:#c8e6c9;color:#2e7d32}.dadata-status.status-warning{background:#fff3e0;color:#e65100}.dadata-status.status-danger{background:#ffebee;color:#c62828}.dadata-result-name{font-size:16px;font-weight:600;color:#212121;margin-bottom:12px}.dadata-result-details{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.dadata-detail{display:flex;gap:6px}.dadata-label{color:#757575;font-size:13px}.dadata-value{color:#212121;font-size:13px;font-family:Consolas,Monaco,monospace}.dadata-result-management,.dadata-result-address{margin-bottom:8px;font-size:13px}.dadata-result-management .dadata-value,.dadata-result-address .dadata-value{font-family:inherit}.dadata-result-actions{display:flex;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #a5d6a7}.dadata-search .spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 600px){.dadata-search-input{flex-direction:column}.dadata-result-details{flex-direction:column;gap:8px}.dadata-result-actions{flex-direction:column}}.contact-modal{max-width:500px;width:95%}.contact-modal .modal-body{max-height:70vh;overflow-y:auto}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#1976d2}.checkbox-label span{font-size:14px;color:#424242}.contact-persons-table{margin-top:24px;padding-top:16px;border-top:1px solid #e0e0e0}.contacts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.contacts-header h3{margin:0;font-size:14px;font-weight:600;color:#424242;text-transform:uppercase;letter-spacing:.5px}.btn-sm{padding:6px 12px;font-size:12px}.contacts-table{width:100%;border-collapse:collapse;font-size:13px}.contacts-table th,.contacts-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #e0e0e0}.contacts-table th{font-weight:600;color:#757575;font-size:12px;text-transform:uppercase;letter-spacing:.3px;background:#fafafa}.contacts-table tbody tr:hover{background:#f5f5f5}.contacts-table tbody tr.primary{background:#e3f2fd}.contacts-table tbody tr.primary:hover{background:#bbdefb}.col-primary{width:36px;text-align:center}.primary-badge{color:#ffc107;font-size:16px;cursor:default}.btn-set-primary{background:none;border:none;color:#bdbdbd;font-size:16px;cursor:pointer;padding:0;line-height:1}.btn-set-primary:hover{color:#ffc107}.col-name{font-weight:500}.col-actions{width:80px;text-align:center}.contacts-table .btn-action{background:none;border:none;padding:4px;margin:0 2px;cursor:pointer;opacity:.6;transition:opacity .2s}.contacts-table .btn-action:hover{opacity:1}.contacts-empty{text-align:center;padding:24px;color:#757575;font-style:italic}.contacts-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#757575}.spinner-small{width:16px;height:16px;border:2px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite}.contractor-modal{max-width:800px;width:95%}.contractor-modal .modal-body{max-height:60vh;overflow-y:auto;padding:0}.contractor-notification{padding:10px 16px;background:#e8f5e9;border-bottom:1px solid #a5d6a7;color:#2e7d32;font-size:13px;font-weight:500;animation:slideDown .3s ease}.contractor-tabs{display:flex;background:#f5f5f5;border-bottom:1px solid #e0e0e0;padding:0}.contractor-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;background:none;border:none;border-bottom:3px solid transparent;color:#757575;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.contractor-tab:hover{background:#eee;color:#424242}.contractor-tab.active{background:#fff;color:#1976d2;border-bottom-color:#1976d2}.contractor-tab.active .tab-icon{opacity:1}.tab-label{white-space:nowrap}.tab-content{padding:20px 24px}.form-section{margin-bottom:24px}.form-section:last-child{margin-bottom:0}.form-section h3{margin:0 0 16px;font-size:13px;font-weight:600;color:#424242;text-transform:uppercase;letter-spacing:.5px;padding-bottom:8px;border-bottom:1px solid #e0e0e0}.form-row:last-child{margin-bottom:0}.form-group-btn{display:flex;align-items:flex-end;flex:0 0 auto!important}.form-group-btn .btn{white-space:nowrap;height:40px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{font-size:13px;font-weight:500;color:#424242}.form-group .required{color:#d32f2f}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f5f5f5;cursor:not-allowed}.form-group .error{font-size:12px;color:#d32f2f}.field-hint{font-size:11px;color:#9e9e9e;font-style:italic}.label-with-checkbox{display:flex;justify-content:space-between;align-items:center}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:400;color:#757575;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer}.checkbox-text{-webkit-user-select:none;user-select:none}.form-hint{margin:0 0 16px;font-size:12px;color:#757575;font-style:italic}.contacts-empty{text-align:center;padding:24px;color:#757575;font-style:italic;background:#fafafa;border-radius:8px}.contractor-modal .contacts-table{width:100%;border-collapse:collapse;font-size:13px}.contractor-modal .contacts-table th,.contractor-modal .contacts-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #e0e0e0}.contractor-modal .contacts-table th{font-weight:600;color:#757575;font-size:12px;text-transform:uppercase;letter-spacing:.3px;background:#fafafa}.contractor-modal .contacts-table tbody tr:hover{background:#f5f5f5}.contractor-modal .contacts-table tbody tr.primary{background:#e3f2fd}.contractor-modal .contacts-table tbody tr.primary:hover{background:#bbdefb}.contractor-modal .col-primary{width:36px;text-align:center}.contractor-modal .primary-badge{color:#ffc107;font-size:16px;cursor:default}.contractor-modal .btn-set-primary{background:none;border:none;color:#bdbdbd;font-size:16px;cursor:pointer;padding:0;line-height:1}.contractor-modal .btn-set-primary:hover{color:#ffc107}.contractor-modal .col-name{font-weight:500}.contractor-modal .col-actions{width:60px;text-align:center}.contractor-modal .btn-action{background:none;border:none;padding:4px;margin:0 2px;cursor:pointer;opacity:.6;transition:opacity .2s}.contractor-modal .btn-action:hover{opacity:1}.action-icon-sm{width:16px;height:16px}@media (max-width: 768px){.contractor-modal{max-width:100%;margin:10px;height:calc(100vh - 20px)}.contractor-modal .modal-body{max-height:calc(100vh - 250px)}.contractor-tabs{flex-wrap:wrap}.contractor-tab{flex:1 1 50%;min-width:0;padding:10px 8px;font-size:12px}.tab-icon{width:16px;height:16px}.tab-label{white-space:normal;text-align:center}.tab-content{padding:16px}}@media (max-width: 600px){.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:16px}.form-row .form-group:last-child{margin-bottom:0}.form-group-btn{align-items:stretch}.form-group-btn .btn{width:100%}.label-with-checkbox{flex-direction:column;align-items:flex-start;gap:6px}.checkbox-label{margin-top:0}}@media (max-width: 480px){.contractor-tab{flex:1 1 100%;justify-content:flex-start;padding:12px 16px}.tab-content{padding:12px}}.references-page{padding:24px;max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header .btn-primary{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.page-header .btn-primary:hover{background:#1565c0}.tabs{display:flex;gap:4px;margin-bottom:20px;background:#f5f5f5;padding:4px;border-radius:8px;overflow-x:auto;flex-wrap:wrap;flex-direction:row;justify-content:center}.tab{padding:10px 16px;border:none;background:transparent;border-radius:6px;font-size:14px;color:#616161;cursor:pointer;transition:all .2s;white-space:nowrap}.tab:hover{background:#ffffff80;color:#424242}.tab.active{background:#fff;color:#1976d2;font-weight:500;box-shadow:0 1px 3px #0000001a}.search-bar{margin-bottom:16px}.search-bar input{width:100%;max-width:400px;padding:10px 16px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s}.search-bar input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.search-bar input::placeholder{color:#9e9e9e}@media (max-width: 768px){.references-page{padding:16px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.page-header h1{font-size:20px}.tab{padding:8px 12px;font-size:13px}}.tools-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.toolbar-left{display:flex;gap:12px}.toolbar-right{display:flex;align-items:center;gap:16px}.btn{padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-danger{background:#d32f2f;color:#fff}.btn-danger:hover{background:#c62828}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#616161;cursor:pointer}.checkbox-label input{width:16px;height:16px;cursor:pointer}.tools-filters{margin-bottom:16px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.filter-group input,.filter-group select{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.filter-group input::placeholder{color:#9e9e9e}.btn-reset{padding:10px 16px;border:1px solid #e0e0e0;background:#fff;border-radius:6px;font-size:14px;color:#757575;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-reset:hover{background:#f5f5f5;border-color:#bdbdbd}@media (max-width: 768px){.filter-group{min-width:100%}}.tools-grid-container{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.tools-grid{width:100%;border-collapse:collapse}.tools-grid th,.tools-grid td{padding:12px 16px;text-align:left;border-bottom:1px solid #e0e0e0}.tools-grid th{background:#f5f5f5;font-weight:600;color:#424242;font-size:13px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}.tools-grid tbody tr{cursor:pointer;transition:background .15s}.tools-grid tbody tr:hover{background:#f5f7fa}.tools-grid tbody tr.selected{background:#1976d214}.tools-grid tbody tr:last-child td{border-bottom:none}.col-checkbox input{width:16px;height:16px;cursor:pointer}.col-photo{width:60px;text-align:center!important}.tool-photo{width:40px;height:40px;object-fit:cover;border-radius:4px}.tool-photo-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:4px;font-size:18px}.col-name .tool-name{font-weight:500;color:#212121}.col-name .tool-brand{font-size:12px;color:#757575;margin-top:2px}.col-inventory{font-family:monospace;font-size:13px;color:#616161}.col-warehouse .warehouse-user{font-size:12px;color:#9e9e9e;margin-top:2px}.col-status{width:140px}.status-cell .status-label{font-size:13px;color:#424242}.col-actions .btn-icon{display:inline-flex;align-items:center;justify-content:center}.action-icon{width:16px;height:16px;vertical-align:middle}.tools-grid-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;background:#fff;border-radius:8px}.tools-grid-empty{display:flex;align-items:center;justify-content:center;padding:80px 20px;color:#9e9e9e;font-size:16px;background:#fff;border-radius:8px}.quick-add-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100}.quick-add-modal{background:#fff;border-radius:12px;width:100%;max-width:360px;box-shadow:0 20px 60px #0000004d;animation:quickAddSlide .2s ease}@keyframes quickAddSlide{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.quick-add-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e0e0e0}.quick-add-header h3{margin:0;font-size:16px;font-weight:600}.quick-add-close{width:28px;height:28px;border:none;background:none;font-size:20px;color:#757575;cursor:pointer;border-radius:50%}.quick-add-close:hover{background:#f5f5f5}.quick-add-body{padding:20px}.quick-add-error{padding:10px;background:#ffebee;color:#c62828;border-radius:6px;font-size:13px;margin-bottom:12px}.quick-add-body input{width:100%;padding:12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;box-sizing:border-box}.quick-add-body input:focus{outline:none;border-color:#1976d2}.quick-add-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid #e0e0e0;background:#fafafa;border-radius:0 0 12px 12px}.tool-modal{max-width:640px}.form-row .form-group.flex-1{flex:1}.add-inline-btn{width:40px;height:40px;border:1px solid #e0e0e0;border-radius:6px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s}.add-inline-btn:hover{background:#e8f5e9;border-color:#4caf50}.add-inline-btn img{width:18px;height:18px}.input-with-btn{display:flex;gap:8px}.input-with-btn input{flex:1}.refresh-btn{width:40px;height:40px;border:1px solid #e0e0e0;border-radius:6px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .2s}.refresh-btn:hover:not(:disabled){background:#e3f2fd}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.refresh-btn img{width:18px;height:18px}.qr-row{align-items:flex-start}.qr-preview{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;flex-shrink:0;margin-top:24px}.qr-preview svg{max-width:100%;max-height:100%}@media (max-width: 640px){.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:16px}.qr-row{flex-direction:row;gap:16px}.qr-preview{margin-top:24px}}.context-chat-button-wrapper{position:relative;display:inline-block}.context-chat-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:6px;cursor:pointer;font-family:inherit;font-weight:500;transition:all .2s ease;white-space:nowrap}.context-chat-button--small{padding:6px 12px;font-size:13px;min-height:32px}.context-chat-button--medium{padding:8px 16px;font-size:14px;min-height:38px}.context-chat-button--outline{background:transparent;border:1px solid #4a90d9;color:#4a90d9}.context-chat-button--outline:hover:not(:disabled){background:#4a90d91a;border-color:#3a7bc8;color:#3a7bc8}.context-chat-button--filled{background:#4a90d9;border:1px solid #4a90d9;color:#fff}.context-chat-button--filled:hover:not(:disabled){background:#3a7bc8;border-color:#3a7bc8}.context-chat-button--icon-only{padding:6px;min-width:32px;background:transparent;border:1px solid #ddd;color:#666}.context-chat-button--icon-only:hover:not(:disabled){background:#f5f5f5;border-color:#4a90d9;color:#4a90d9}.context-chat-button__icon{font-size:16px;line-height:1}.context-chat-button--small .context-chat-button__icon{font-size:14px}.context-chat-button__label{font-size:inherit}.context-chat-button--loading{opacity:.7;pointer-events:none}.context-chat-button__spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:context-chat-spin .8s linear infinite}@keyframes context-chat-spin{to{transform:rotate(360deg)}}.context-chat-button:disabled{opacity:.5;cursor:not-allowed}.context-chat-button__error{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#e74c3c;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;animation:context-chat-error-appear .2s ease}.context-chat-button__error:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#e74c3c}@keyframes context-chat-error-appear{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tool-details-modal{max-width:700px;width:95%}.details-tabs{display:flex;border-bottom:1px solid #e0e0e0;padding:0 24px}.tab-button{padding:12px 24px;border:none;background:none;font-size:14px;font-weight:500;color:#757575;cursor:pointer;position:relative;transition:color .2s}.tab-button:hover,.tab-button.active{color:#1976d2}.tab-button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#1976d2}.info-tab{display:flex;flex-direction:column;gap:20px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.info-row{display:flex;flex-direction:column;gap:4px}.info-row.full-width{grid-column:1 / -1}.info-label{font-size:12px;font-weight:500;color:#757575;text-transform:uppercase}.info-value{font-size:14px;color:#333}.info-value.mono{font-family:monospace;font-size:13px;background:#f5f5f5;padding:4px 8px;border-radius:4px;display:inline-block}.info-value.notes{white-space:pre-wrap;background:#fafafa;padding:8px 12px;border-radius:6px;font-size:13px;line-height:1.5}.status-with-icon{display:inline-flex;align-items:center;gap:8px}.status-with-icon.small{gap:4px}.status-with-icon .status-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.status-with-icon.small .status-icon{width:18px;height:18px}.status-with-icon .status-text{font-size:14px;font-weight:500;color:#333}.tool-photo{margin-top:12px;text-align:center}.tool-photo img{max-width:100%;max-height:250px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.history-tab{min-height:200px}.history-loading,.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px;color:#757575}.history-error{padding:12px;background:#ffebee;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;text-align:center}.empty-icon{font-size:36px}.spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite}.timeline{position:relative;padding:8px 0}.timeline-item{position:relative;display:flex;gap:16px;padding-bottom:24px}.timeline-item:last-child{padding-bottom:0}.timeline-marker{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:3px solid #ccc;background:#fff;display:flex;align-items:center;justify-content:center;z-index:1}.timeline-icon{width:20px;height:20px;object-fit:contain}.timeline-content{flex:1;min-width:0}.timeline-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.timeline-event{font-weight:600;font-size:14px}.timeline-date{font-size:12px;color:#757575;white-space:nowrap}.timeline-details{font-size:13px;color:#555}.timeline-warehouses,.timeline-status-change{display:flex;align-items:center;gap:8px;padding:6px 0}.arrow{color:#999;font-weight:700}.timeline-user{font-size:12px;color:#757575;margin-top:4px}.timeline-comment{margin-top:6px;padding:8px 12px;background:#f5f5f5;border-radius:6px;font-size:12px;color:#555}.timeline-line{position:absolute;left:19px;top:40px;width:2px;height:calc(100% - 40px);background:#e0e0e0}@media (max-width: 600px){.info-grid{grid-template-columns:1fr}.timeline-header{flex-direction:column;align-items:flex-start;gap:4px}.details-tabs{padding:0 16px}.tab-button{padding:12px 16px}}.tools-page{padding:24px}.transfers-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.toolbar-left{display:flex;gap:8px;align-items:center}.selected-count{font-size:14px;color:#666}.transfers-filters{padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.filter-input,.filter-select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s}.filter-input:focus,.filter-select:focus{outline:none;border-color:#1976d2}.btn-reset{padding:8px 16px;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-reset:hover{background:#e0e0e0}.transfers-grid-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;flex:1;display:flex;flex-direction:column}.transfers-grid-wrapper{overflow:auto;flex:1}.transfers-grid{width:100%;border-collapse:collapse;font-size:14px}.transfers-grid th{position:sticky;top:0;background:#f5f5f5;padding:12px 8px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;white-space:nowrap}.transfers-grid td{padding:12px 8px;border-bottom:1px solid #eee;vertical-align:middle}.transfers-grid tbody tr:hover{background:#f5f7fa}.transfers-grid tbody tr.selected{background:#1976d214}.col-checkbox{width:40px;text-align:center}.col-id{width:100px}.col-from,.col-to{width:150px}.col-items{width:80px;text-align:center}.col-status,.col-date{width:140px}.col-creator{width:150px}.col-actions{width:90px}.transfer-id{font-family:monospace;font-size:12px;color:#666}.status-cell{display:inline-flex;align-items:center;gap:8px}.status-cell .status-icon{width:22px;height:22px;object-fit:contain;flex-shrink:0}.status-cell .status-label{font-size:13px;color:#424242;white-space:nowrap}.actions-cell{display:flex;gap:4px}.btn-action{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:16px;background:transparent}.btn-view:hover{background:#e3f2fd}.transfers-grid-loading{padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#666}.transfers-grid-empty{padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#666}.pagination-info{font-size:13px;color:#666}.btn-page{width:32px;height:32px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-page:hover:not(:disabled){background:#f5f5f5;border-color:#1976d2}.page-info{font-size:13px;color:#666;min-width:60px;text-align:center}.modal-content{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.create-transfer-modal{width:640px;max-width:90vw}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e0e0e0}.modal-close{width:32px;height:32px;border:none;background:none;font-size:24px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;border-radius:4px}.form-row .form-group{flex:1}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#333}.form-group select,.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.form-group select:focus,.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#1976d2}.form-group textarea{resize:vertical;min-height:60px}.error-message{padding:12px;background:#ffebee;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;margin-bottom:16px;font-size:14px}.tools-section{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.tools-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f5f5;border-bottom:1px solid #e0e0e0}.tools-header h3{margin:0;font-size:14px;font-weight:600}.tools-search{width:200px;padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px}.tools-placeholder,.tools-loading,.tools-empty{padding:40px 20px;text-align:center;color:#666;font-size:14px}.tools-list{max-height:300px;overflow-y:auto}.tools-list-header{padding:8px 16px;background:#fafafa;border-bottom:1px solid #e0e0e0}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#666}.tools-list-items{padding:8px 0}.tool-item{display:flex;align-items:center;gap:12px;padding:8px 16px;cursor:pointer;transition:background .2s}.tool-item:hover{background:#f5f7fa}.tool-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.tool-name{font-size:14px;color:#333}.tool-number{font-size:12px;color:#666;font-family:monospace}.tool-details{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.tool-brand,.tool-category,.tool-sn{font-size:11px;color:#888;background:#f0f0f0;padding:2px 6px;border-radius:4px}.btn-primary:disabled{background:#90caf9;cursor:not-allowed}.btn-secondary:hover{background:#d0d0d0}.transfer-details-modal{width:700px;max-width:90vw}.modal-header h2{display:flex;align-items:center;gap:12px}.status-label{font-size:12px;font-weight:500;padding:4px 10px;border-radius:12px;text-transform:uppercase}.status-label.status-pending{background:#fff3e0;color:#e65100}.status-label.status-accepted{background:#e8f5e9;color:#2e7d32}.status-label.status-accepted_with_issues{background:#fff3e0;color:#f57c00}.status-label.status-rejected{background:#ffebee;color:#c62828}.transfer-info{background:#f9f9f9;border-radius:8px;padding:16px;margin-bottom:20px}.info-row{display:flex;gap:24px;margin-bottom:12px}.info-item{flex:1}.info-label{font-size:12px;color:#666;margin-right:8px}.info-value{font-size:14px;color:#333;font-weight:500}.info-notes{margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.info-notes p{margin:6px 0 0;font-size:14px;color:#333;white-space:pre-wrap}.info-notes.rejection{background:#ffebee;padding:12px;border-radius:6px;border-top:none}.info-notes.rejection .info-label{color:#c62828}.items-section{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.items-section h3{margin:0;padding:12px 16px;font-size:14px;font-weight:600;background:#f5f5f5;border-bottom:1px solid #e0e0e0}.status-summary{display:flex;gap:16px;padding:8px 16px;background:#fafafa;border-bottom:1px solid #e0e0e0;font-size:13px}.status-count{font-weight:500}.items-list{max-height:300px;overflow-y:auto}.item-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #eee}.item-row:last-child{border-bottom:none}.item-row:hover{background:#f9f9f9}.item-info{display:flex;flex-direction:column;gap:2px}.item-name{font-size:14px;color:#333}.item-number{font-size:12px;color:#666;font-family:monospace}.item-details{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.item-brand,.item-category,.item-sn{font-size:11px;color:#888;background:#f5f5f5;padding:2px 6px;border-radius:4px}.item-controls{display:flex;gap:8px;align-items:center}.status-select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;min-width:120px}.item-notes-input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;width:150px}.item-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.receive-status{font-size:13px;font-weight:500}.receive-status.pending{color:#999}.item-notes{font-size:12px;color:#666;font-style:italic}.reject-form,.accept-section{margin-top:16px}.accept-notes{margin-bottom:16px}.reject-form label,.accept-notes label,.accept-photos label{display:block;margin-bottom:6px;font-size:14px;font-weight:500}.reject-form textarea,.accept-notes textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;resize:vertical}.reject-form textarea:focus,.accept-notes textarea:focus{outline:none;border-color:#1976d2}.accept-photos{margin-top:16px}.photo-upload-area{margin-bottom:12px}.photo-input{display:none}.photo-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#f5f5f5;border:2px dashed #ccc;border-radius:6px;cursor:pointer;font-size:14px;color:#666;transition:all .2s}.photo-upload-btn:hover{background:#e8e8e8;border-color:#1976d2;color:#1976d2}.photo-previews{display:flex;flex-wrap:wrap;gap:12px}.photo-preview{position:relative;width:80px;height:80px;border-radius:6px;overflow:hidden;border:1px solid #ddd}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;background:#0009;color:#fff;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.photo-remove:hover{background:#f44336e6}.btn-success{background:#4caf50;color:#fff}.btn-success:hover:not(:disabled){background:#43a047}.btn-success:disabled{background:#a5d6a7;cursor:not-allowed}.btn-danger:hover:not(:disabled){background:#e53935}.btn-danger:disabled{background:#ef9a9a;cursor:not-allowed}.transfers-page{padding:24px;display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden}.transfers-header{display:flex;justify-content:space-between;align-items:center}.transfers-header h1{margin:0;font-size:24px;font-weight:600;color:#1a1a1a}.history-page{padding:24px;display:flex;flex-direction:column;gap:20px;height:100%}.history-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;padding:16px;background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{font-size:12px;font-weight:500;color:var(--muted)}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;min-width:160px;background:var(--surface);color:var(--text)}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary)}.history-table-container{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;flex:1;display:flex;flex-direction:column}.history-table{width:100%;border-collapse:collapse;font-size:14px}.history-table th{position:sticky;top:0;background:var(--background);padding:12px 8px;text-align:left;font-weight:600;color:var(--text);border-bottom:2px solid var(--border);white-space:nowrap}.history-table td{padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.history-table tbody tr:hover{background:var(--background)}.col-date{width:140px;white-space:nowrap;font-size:13px;color:var(--muted)}.col-event{width:150px}.col-tool{min-width:200px}.col-warehouse,.col-user{width:150px}.col-comment{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:13px}.event-type{display:inline-flex;align-items:center;gap:6px;font-weight:500}.event-icon{width:18px;height:18px;object-fit:contain;vertical-align:middle}.tool-info{display:flex;flex-direction:column;gap:2px}.tool-name{font-size:14px;color:var(--text)}.tool-number{font-size:12px;color:var(--muted);font-family:monospace}.history-loading,.history-empty{padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted)}.error-message{padding:12px;background:var(--error-bg, #ffebee);border:1px solid var(--error-border, #ffcdd2);border-radius:6px;color:var(--error, #c62828);font-size:14px}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{opacity:.85}.tools-map-page{height:100%;display:flex;align-items:center;justify-content:center}.tools-map-placeholder{text-align:center;max-width:500px;padding:40px}.placeholder-icon{width:80px;height:80px;margin:0 auto 24px;background:var(--pill);border-radius:20px;display:flex;align-items:center;justify-content:center}.placeholder-icon img{width:48px;height:48px;opacity:.8}.tools-map-placeholder h1{font-size:28px;font-weight:600;color:var(--text);margin-bottom:12px}.tools-map-placeholder p{font-size:16px;color:var(--muted);line-height:1.6;margin-bottom:32px}.placeholder-features{text-align:left;background:var(--background);padding:20px 24px;border-radius:12px}.placeholder-features h3{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.placeholder-features ul{margin:0;padding-left:20px}.placeholder-features li{font-size:14px;color:var(--muted);line-height:1.8}.create-inventory-modal{width:480px;max-width:95vw}.create-inventory-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}.create-inventory-modal .modal-header h2{margin:0;font-size:18px;font-weight:600}.create-inventory-modal .close-btn{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;line-height:1}.create-inventory-modal .close-btn:hover{color:#333}.create-inventory-modal .modal-body{padding:20px}.create-inventory-modal .error-message{background:#f8d7da;color:#721c24;padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px}.create-inventory-modal .form-group{margin-bottom:16px}.create-inventory-modal .form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#333}.create-inventory-modal .form-group select,.create-inventory-modal .form-group input,.create-inventory-modal .form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.create-inventory-modal .form-group select:focus,.create-inventory-modal .form-group input:focus,.create-inventory-modal .form-group textarea:focus{outline:none;border-color:#1976d2}.create-inventory-modal .form-group textarea{resize:vertical;min-height:80px}.create-inventory-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #eee}.create-inventory-modal .btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.create-inventory-modal .btn-primary{background:#1976d2;color:#fff}.create-inventory-modal .btn-primary:hover:not(:disabled){background:#1565c0}.create-inventory-modal .btn-primary:disabled{opacity:.6;cursor:not-allowed}.create-inventory-modal .btn-secondary{background:#f0f0f0;color:#333}.create-inventory-modal .btn-secondary:hover{background:#e0e0e0}.inventory-details-modal{width:900px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.inventory-details-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}.inventory-details-modal .header-info{display:flex;align-items:center;gap:12px}.inventory-details-modal .header-info h2{margin:0;font-size:18px;font-weight:600;font-family:monospace}.inventory-details-modal .status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;color:#fff}.inventory-details-modal .close-btn{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;line-height:1}.inventory-details-modal .close-btn:hover{color:#333}.inventory-details-modal .error-banner{background:#f8d7da;color:#721c24;padding:12px 20px;font-size:14px}.inventory-details-modal .info-section{padding:16px 20px;background:#f8f9fa;border-bottom:1px solid #eee}.inventory-details-modal .info-row{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:16px}.inventory-details-modal .info-item{display:flex;flex-direction:column;gap:4px}.inventory-details-modal .info-item label{font-size:11px;color:#666;text-transform:uppercase;font-weight:500}.inventory-details-modal .info-item span{font-size:14px;color:#333}.inventory-details-modal .stats-row{display:flex;gap:16px}.inventory-details-modal .stat-item{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:#fff;border-radius:8px;min-width:80px}.inventory-details-modal .stat-value{font-size:24px;font-weight:600;color:#333}.inventory-details-modal .stat-label{font-size:12px;color:#666}.inventory-details-modal .stat-pending .stat-value{color:#6c757d}.inventory-details-modal .stat-ok .stat-value{color:#198754}.inventory-details-modal .stat-issues .stat-value{color:#dc3545}.inventory-details-modal .tabs{display:flex;border-bottom:1px solid #eee;padding:0 20px}.inventory-details-modal .tab{padding:12px 20px;background:none;border:none;font-size:14px;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.inventory-details-modal .tab:hover{color:#333}.inventory-details-modal .tab.active{color:#1976d2;border-bottom-color:#1976d2;font-weight:500}.inventory-details-modal .tab-content{flex:1;overflow:auto;padding:16px 20px}.inventory-details-modal .items-list{overflow:auto}.inventory-details-modal .empty-items{text-align:center;padding:40px;color:#666}.inventory-details-modal .items-table{width:100%;border-collapse:collapse}.inventory-details-modal .items-table th,.inventory-details-modal .items-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #eee}.inventory-details-modal .items-table th{font-size:12px;font-weight:600;color:#666;text-transform:uppercase}.inventory-details-modal .items-table td.mono{font-family:monospace}.inventory-details-modal .item-status{display:inline-block;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:500;color:#fff}.inventory-details-modal .status-select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;background:#fff}.inventory-details-modal .status-select:focus{outline:none;border-color:#1976d2}.inventory-details-modal .info-tab{display:flex;flex-direction:column;gap:20px}.inventory-details-modal .info-block h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#333}.inventory-details-modal .info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.inventory-details-modal .info-field{display:flex;flex-direction:column;gap:4px}.inventory-details-modal .info-field label{font-size:12px;color:#666}.inventory-details-modal .info-field span{font-size:14px;color:#333}.inventory-details-modal .notes-text{margin:0;font-size:14px;color:#333;line-height:1.5;white-space:pre-wrap}.inventory-details-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #eee}.inventory-details-modal .btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.inventory-details-modal .btn:disabled{opacity:.6;cursor:not-allowed}.inventory-details-modal .btn-primary{background:#1976d2;color:#fff}.inventory-details-modal .btn-primary:hover:not(:disabled){background:#1565c0}.inventory-details-modal .btn-secondary{background:#f0f0f0;color:#333}.inventory-details-modal .btn-secondary:hover:not(:disabled){background:#e0e0e0}.inventory-details-modal .btn-warning{background:#ffc107;color:#212529}.inventory-details-modal .btn-warning:hover:not(:disabled){background:#e0a800}.inventory-page{padding:20px;height:100%;display:flex;flex-direction:column;gap:20px}.inventory-page .page-header{display:flex;justify-content:space-between;align-items:center}.inventory-page .page-header h1{margin:0;font-size:24px;font-weight:600;color:var(--text)}.inventory-page .btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.inventory-page .btn-primary{background:#1976d2;color:#fff}.inventory-page .btn-primary:hover{background:#1565c0}.inventory-page .btn-secondary{background:#6c757d;color:#fff}.inventory-page .btn-secondary:hover:not(:disabled){background:#545b62}.inventory-page .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.inventory-page .btn-icon{width:16px;height:16px}.inventory-filters{display:flex;gap:16px;flex-wrap:wrap;background:#fff;padding:16px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.inventory-filters .filter-group{display:flex;flex-direction:column;gap:4px}.inventory-filters .filter-group label{font-size:12px;color:#666;font-weight:500}.inventory-filters .filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:180px;background:#fff}.inventory-filters .filter-group select:focus{outline:none;border-color:#1976d2}.inventory-table-wrapper{flex:1;overflow:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.inventory-table{width:100%;border-collapse:collapse}.inventory-table th,.inventory-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #eee}.inventory-table th{background:#f8f9fa;font-weight:600;color:#333;position:sticky;top:0;z-index:1}.inventory-table tbody tr:hover{background:#f8f9fa}.inventory-table .col-number{font-family:monospace;font-weight:500}.inventory-table .col-date,.inventory-table .col-count,.inventory-table .col-checked{text-align:center}.inventory-table .col-actions{width:140px}.inventory-page .status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;color:#fff}.inventory-page .action-buttons{display:flex;gap:6px}.inventory-page .btn-icon-action{width:30px;height:30px;padding:4px;border:none;border-radius:6px;background:#f0f0f0;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.inventory-page .btn-icon-action:hover{background:#e0e0e0}.inventory-page .btn-icon-action.btn-danger:hover{background:#f8d7da}.inventory-page .btn-icon-action.btn-warning:hover{background:#fff3cd}.inventory-page .btn-icon-action img{width:16px;height:16px}.inventory-page .pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.inventory-page .page-info{font-size:14px;color:#666}.inventory-page .loading-state,.inventory-page .error-state,.inventory-page .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#666}.inventory-page .empty-state .empty-icon{width:64px;height:64px;opacity:.5;margin-bottom:16px}.inventory-page .error-state{color:#dc3545}.users-filters{background:#fff;padding:16px;border-radius:8px;margin-bottom:16px;box-shadow:0 1px 3px #0000001a}.filters-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-group{min-width:150px}.filter-group.search-group{flex:1;min-width:250px}.filter-group input,.filter-group select{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;box-sizing:border-box;transition:border-color .2s}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#1976d2}.btn-reset{padding:10px 16px;border:1px solid #e0e0e0;background:#fff;border-radius:6px;font-size:14px;color:#757575;cursor:pointer;transition:all .2s}.btn-reset:hover{border-color:#bdbdbd;color:#424242}.users-grid-container{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.users-grid{width:100%;border-collapse:collapse}.users-grid th,.users-grid td{padding:12px 16px;text-align:left;border-bottom:1px solid #e0e0e0}.users-grid th{background:#f5f5f5;font-weight:600;color:#424242;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.users-grid tbody tr{transition:background .15s}.users-grid tbody tr:hover{background:#f5f7fa}.users-grid tbody tr:last-child td{border-bottom:none}.col-avatar{width:50px}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:#1976d2;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.col-name .user-name{font-weight:500;color:#212121}.col-name .user-badge{display:inline-block;margin-top:4px;padding:2px 8px;background:#e3f2fd;color:#1976d2;font-size:11px;border-radius:10px}.col-username{font-family:monospace;font-size:13px;color:#616161}.col-email{color:#757575;font-size:13px}.col-auth-type{width:60px;text-align:center}.auth-type-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:4px}.auth-type-badge.local{background:#f5f5f5}.auth-type-badge.ldap{background:#e3f2fd}.auth-type-icon{width:20px;height:20px;object-fit:contain}.role-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.role-admin{background:#fce4ec;color:#c62828}.role-manager{background:#fff3e0;color:#e65100}.role-warehouse_keeper{background:#e8f5e9;color:#2e7d32}.role-employee{background:#e3f2fd;color:#1565c0}.col-status{font-size:13px;color:#616161}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.active{background:#4caf50}.status-dot.inactive{background:#9e9e9e}.col-actions{width:90px;text-align:center}.btn-icon{padding:6px 8px;border:none;background:none;cursor:pointer;font-size:16px;border-radius:4px;transition:background .2s}.btn-icon.btn-delete:hover{background:#d32f2f1a}.users-grid-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;background:#fff;border-radius:8px}.spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.users-grid-empty{display:flex;align-items:center;justify-content:center;padding:80px 20px;color:#9e9e9e;font-size:16px;background:#fff;border-radius:8px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid #e0e0e0;background:#fafafa}.pagination-info{font-size:13px;color:#757575}.pagination-controls button{width:32px;height:32px;border:1px solid #e0e0e0;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;color:#424242;transition:all .2s}.pagination-controls button:hover:not(:disabled){background:#f5f5f5;border-color:#bdbdbd}.pagination-controls button:disabled{opacity:.5;cursor:not-allowed}.pagination-controls span{font-size:13px;color:#616161;padding:0 8px}.user-modal{max-width:700px}.modal-content{background:#fff;border-radius:12px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-header h2{margin:0;font-size:18px;font-weight:600}.modal-close{width:32px;height:32px;border:none;background:none;font-size:24px;color:#757575;cursor:pointer;border-radius:50%}.modal-close:hover{background:#f5f5f5}.modal-tabs{display:flex;border-bottom:1px solid #e0e0e0;padding:0 24px;background:#fafafa}.modal-tab{padding:12px 20px;border:none;background:none;font-size:14px;color:#757575;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.modal-tab:hover{color:#1976d2}.modal-tab.active{color:#1976d2;border-bottom-color:#1976d2;font-weight:500}.modal-body{padding:24px;overflow-y:auto;max-height:60vh}.tab-content{animation:fadeIn .2s ease}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#424242}.required{color:#d32f2f}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;box-sizing:border-box;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#1976d2}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f5f5f5}.form-group .error{display:block;margin-top:4px;font-size:12px;color:#d32f2f}.checkbox-group{margin-top:8px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400!important}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.btn-secondary{background:#e0e0e0;color:#424242}.btn-secondary:hover:not(:disabled){background:#d0d0d0}@media (max-width: 640px){.form-row{flex-direction:column;gap:0}.form-row .form-group{margin-bottom:16px}.modal-tabs{overflow-x:auto;padding:0 16px}.modal-tab{padding:12px 16px;white-space:nowrap}}.users-page{padding:24px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1{margin:0;font-size:24px;font-weight:600;color:#212121}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.import-modal{max-width:900px;width:95%;max-height:90vh;display:flex;flex-direction:column}.import-body{flex:1;overflow-y:auto;padding:20px 24px;min-height:400px}.import-progress{display:flex;justify-content:center;gap:40px;padding:16px 24px;background:#f5f5f5;border-bottom:1px solid #e0e0e0}.progress-step{display:flex;align-items:center;gap:8px;color:#9e9e9e}.progress-step.active{color:#1976d2}.progress-step.current{font-weight:600}.step-number{width:28px;height:28px;border-radius:50%;background:#e0e0e0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.progress-step.active .step-number{background:#1976d2;color:#fff}.step-label{font-size:13px}.import-error{padding:12px 16px;background:#ffebee;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;margin-bottom:16px}.import-step{display:flex;flex-direction:column;gap:16px}.step-description{color:#616161;font-size:14px;margin:0}.dropzone{border:2px dashed #bdbdbd;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#fafafa}.dropzone:hover,.dropzone.drag-active{border-color:#1976d2;background:#e3f2fd}.dropzone.has-file{border-color:#4caf50;background:#e8f5e9;border-style:solid}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:8px}.dropzone-icon{font-size:48px}.dropzone-text{font-size:16px;color:#424242}.dropzone-hint{font-size:13px;color:#9e9e9e}.dropzone-loading{display:flex;flex-direction:column;align-items:center;gap:12px}.dropzone-success{display:flex;flex-direction:column;align-items:center;gap:8px}.file-icon{font-size:36px}.file-name{font-size:16px;font-weight:500;color:#2e7d32}.file-rows{font-size:13px;color:#616161}.btn-link{background:none;border:none;color:#1976d2;cursor:pointer;font-size:14px;padding:8px 0;text-decoration:underline}.btn-link:hover{color:#1565c0}.mapping-table-container{max-height:400px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:6px}.mapping-table{width:100%;border-collapse:collapse}.mapping-table th{position:sticky;top:0;background:#f5f5f5;padding:12px 16px;text-align:left;font-weight:600;font-size:13px;border-bottom:2px solid #e0e0e0}.mapping-table td{padding:10px 16px;border-bottom:1px solid #eee}.mapping-table .col-file{font-family:monospace;background:#fafafa;width:40%}.mapping-table .col-system select{width:100%;padding:8px 10px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px}.preview-settings{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:#f5f5f5;border-radius:6px}.setting-group{display:flex;align-items:center;gap:8px}.setting-group label{font-size:13px;font-weight:500}.setting-group select{padding:6px 10px;border:1px solid #e0e0e0;border-radius:4px;font-size:13px}.setting-checkbox,.filter-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.setting-checkbox input,.filter-checkbox input{width:16px;height:16px}.preview-stats{display:flex;gap:16px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:#f5f5f5;border-radius:6px;min-width:80px}.stat-value{font-size:24px;font-weight:600;color:#424242}.stat-label{font-size:12px;color:#757575}.stat-ok .stat-value{color:#2e7d32}.stat-warning .stat-value{color:#f57c00}.stat-error .stat-value{color:#c62828}.preview-table-container{max-height:300px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:6px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th{position:sticky;top:0;background:#f5f5f5;padding:10px 12px;text-align:left;font-weight:600;border-bottom:2px solid #e0e0e0}.preview-table td{padding:8px 12px;border-bottom:1px solid #eee}.preview-table .row-ok{background:#fff}.preview-table .row-warning{background:#fff8e1}.preview-table .row-error{background:#ffebee}.status-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-ok{background:#e8f5e9;color:#2e7d32}.status-warning{background:#fff3e0;color:#e65100}.status-error{background:#ffebee;color:#c62828}.col-issues{font-size:12px;color:#616161;max-width:300px}.preview-more{padding:12px;text-align:center;color:#757575;font-size:13px;background:#fafafa}.import-result{text-align:center;padding:40px 20px}.result-icon{font-size:64px;margin-bottom:16px}.result-title{font-size:20px;font-weight:600;color:#424242;margin:0 0 24px}.result-stats{display:flex;justify-content:center;gap:24px;margin-bottom:24px;flex-wrap:wrap}.result-stat{display:flex;flex-direction:column;align-items:center;padding:16px 24px;background:#e8f5e9;border-radius:8px;min-width:100px}.result-stat-warning{background:#fff3e0}.result-stat-error{background:#ffebee}.result-value{font-size:32px;font-weight:700;color:#2e7d32}.result-stat-warning .result-value{color:#e65100}.result-stat-error .result-value{color:#c62828}.result-label{font-size:13px;color:#616161;margin-top:4px}.spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 768px){.import-modal{max-width:100%;margin:10px;max-height:calc(100vh - 20px)}.import-progress{gap:16px;flex-wrap:wrap;justify-content:flex-start}.step-label{display:none}.preview-settings{flex-direction:column;align-items:flex-start}.preview-stats{justify-content:flex-start}.result-stats{flex-direction:column;align-items:center}}.contractors-page{display:flex;flex-direction:column;gap:20px;height:100%}.contractors-page .page-header{display:flex;justify-content:space-between;align-items:center}.contractors-page .page-header h1{margin:0;font-size:24px;font-weight:600;color:var(--text)}.contractors-page .header-buttons{display:flex;gap:12px}.contractors-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.contractors-filters .filter-group{display:flex;align-items:stretch;gap:8px;flex-direction:row}.contractors-filters .search-input{width:300px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text)}.contractors-filters select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;min-width:150px;background:var(--surface);color:var(--text)}.contractors-filters .filter-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--muted);-webkit-user-select:none;user-select:none}.contractors-filters .filter-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.contractors-table-container{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;flex:1}.contractors-table{width:100%;border-collapse:collapse;font-size:14px}.contractors-table th{position:sticky;top:0;background:var(--background);padding:12px 8px;text-align:left;font-weight:600;color:var(--text);border-bottom:2px solid var(--border);white-space:nowrap}.contractors-table td{padding:12px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.contractors-table tbody tr{cursor:pointer;transition:background .15s}.contractors-table tbody tr:hover{background:var(--background)}.contractors-table tbody tr.row-deleted{background:var(--background);opacity:.7}.contractors-table tbody tr.row-deleted:hover{background:var(--background);opacity:.85}.contractors-table tbody tr.row-deleted td{color:var(--muted)}.deleted-badge{display:inline-block;margin-left:8px;padding:2px 6px;background:var(--error-bg, #ffebee);color:var(--error, #c62828);font-size:11px;font-weight:500;border-radius:4px;text-transform:uppercase}.col-name{font-weight:500;color:var(--text)}.col-inn{font-family:monospace;color:var(--muted)}.col-type{width:160px}.col-actions{width:100px;text-align:center}.type-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.type-supplier{background:#e3f2fd;color:#1565c0}.type-customer{background:#f3e5f5;color:#7b1fa2}.type-both{background:#fff3e0;color:#e65100}.btn-action{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;font-size:16px;background:transparent;margin:0 2px}.btn-edit:hover{background:var(--background)}.btn-delete:hover{background:var(--error-bg, #ffebee)}.btn-restore:hover{background:#e8f5e9}.restore-icon{font-size:18px;color:#4caf50}.contractors-loading{padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.contractors-empty{padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted)}.empty-icon{font-size:48px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a}.pagination-info{font-size:13px;color:var(--muted)}.pagination-controls{display:flex;align-items:center;gap:8px}.btn-page{width:32px;height:32px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-page:hover:not(:disabled){background:var(--background);border-color:var(--primary)}.btn-page:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:13px;color:var(--muted);min-width:60px;text-align:center}.error-message{padding:12px 16px;background:var(--error-bg, #ffebee);border:1px solid var(--error-border, #ffcdd2);border-radius:6px;color:var(--error, #c62828)}.ldap-settings-tab{max-width:800px}.ldap-loading{padding:40px;text-align:center;color:#666}.ldap-header{margin-bottom:24px}.ldap-header h2{margin:0 0 8px;font-size:20px;font-weight:600;color:#333}.ldap-description{margin:0;color:#666;font-size:14px}.ldap-message{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.ldap-message.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.ldap-message.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.ldap-section{background:#f9fafb;border-radius:8px;padding:20px;margin-bottom:16px}.ldap-section h3{margin:0 0 16px;font-size:14px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px}.ldap-form-group{margin-bottom:16px}.ldap-form-group:last-child{margin-bottom:0}.ldap-form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.ldap-form-group input,.ldap-form-group textarea,.ldap-form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#333;background:#fff;transition:border-color .2s,box-shadow .2s}.ldap-form-group input:focus,.ldap-form-group textarea:focus,.ldap-form-group select:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.ldap-form-group input::placeholder,.ldap-form-group textarea::placeholder{color:#9ca3af}.ldap-form-group textarea{resize:vertical;min-height:80px;font-family:monospace}.ldap-hint{margin:6px 0 0;font-size:12px;color:#6b7280}.ldap-form-row{display:flex;gap:16px}.ldap-form-row .ldap-form-group{flex:1}.ldap-form-row .ldap-form-group.wide{flex:3}.ldap-form-row .ldap-form-group.narrow{flex:1;max-width:120px}.ldap-form-row.four-columns .ldap-form-group{flex:1}.ldap-toggle{display:flex;align-items:center;gap:12px;cursor:pointer}.ldap-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer}.ldap-toggle .toggle-label{font-size:16px;font-weight:500;color:#333}.ldap-checkbox{display:flex;align-items:center;gap:8px;margin-bottom:16px;cursor:pointer;font-size:14px;color:#374151}.ldap-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:44px}.toggle-password-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:18px;padding:4px;opacity:.6;transition:opacity .2s}.toggle-password-btn:hover{opacity:1}.password-set-badge{margin-left:8px;padding:2px 8px;background:#dbeafe;color:#1e40af;font-size:11px;font-weight:500;border-radius:10px}.ldap-test-result{padding:16px 20px;border-radius:8px;margin-bottom:16px}.ldap-test-result.success{background:#f0fdf4;border:1px solid #bbf7d0}.ldap-test-result.error{background:#fef2f2;border:1px solid #fecaca}.ldap-test-result h4{margin:0 0 12px;font-size:15px;font-weight:600}.ldap-test-result.success h4{color:#166534}.ldap-test-result.error h4{color:#b91c1c}.ldap-test-result ul{margin:0;padding:0;list-style:none}.ldap-test-result li{padding:4px 0;font-size:14px;color:#374151}.ldap-test-result li.error-detail{color:#b91c1c;margin-top:8px;padding-top:8px;border-top:1px solid #fecaca}.ldap-actions{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #e5e7eb;margin-top:24px}.ldap-actions-right{display:flex;gap:12px}.ldap-settings-tab .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.ldap-settings-tab .btn:disabled{opacity:.6;cursor:not-allowed}.ldap-settings-tab .btn-primary{background:#1976d2;color:#fff}.ldap-settings-tab .btn-primary:hover:not(:disabled){background:#1565c0}.ldap-settings-tab .btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.ldap-settings-tab .btn-secondary:hover:not(:disabled){background:#e5e7eb}.ldap-settings-tab .btn-test{background:#f3f4f6;color:#1976d2;border:1px solid #1976d2}.ldap-settings-tab .btn-test:hover:not(:disabled){background:#e3f2fd}@media (max-width: 768px){.ldap-form-row{flex-direction:column}.ldap-form-row .ldap-form-group.wide,.ldap-form-row .ldap-form-group.narrow{max-width:none}.ldap-form-row.four-columns{flex-direction:column}.ldap-actions{flex-direction:column;gap:16px}.ldap-actions-right{width:100%;justify-content:flex-end}}.settings-page{padding:24px;max-width:1200px}.settings-page .page-header{margin-bottom:24px}.settings-page .page-header h1{margin:0;font-size:24px;font-weight:600;color:#212121}.settings-tabs{display:flex;gap:4px;border-bottom:2px solid #e0e0e0;margin-bottom:24px}.settings-tab{padding:12px 24px;background:none;border:none;font-size:14px;font-weight:500;color:#757575;cursor:pointer;position:relative;transition:color .2s}.settings-tab:hover{color:#424242}.settings-tab.active{color:#1976d2}.settings-tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#1976d2}.settings-content{min-height:400px}.settings-cards{display:flex;flex-direction:column;gap:16px}.setting-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;transition:box-shadow .2s}.setting-card:hover{box-shadow:0 2px 8px #0000001a}.setting-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.setting-card-title{margin:0;font-size:16px;font-weight:600;color:#212121}.setting-card-status{font-size:12px;padding:4px 8px;border-radius:4px;font-weight:500}.setting-card-status.configured{background:#e8f5e9;color:#2e7d32}.setting-card-status.not-configured{background:#fff3e0;color:#e65100}.setting-card-description{margin:0 0 16px;font-size:14px;color:#757575}.setting-card-value{display:flex;align-items:center;gap:12px;margin-bottom:16px}.setting-value-display{flex:1;padding:10px 12px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;font-family:Consolas,Monaco,monospace;font-size:14px;color:#424242}.setting-value-display.empty{color:#9e9e9e;font-style:italic;font-family:inherit}.btn-toggle-visibility{background:none;border:1px solid #e0e0e0;border-radius:6px;padding:8px 12px;cursor:pointer;font-size:16px;color:#757575;transition:all .2s}.btn-toggle-visibility:hover{background:#f5f5f5;border-color:#bdbdbd}.setting-card-actions{display:flex;justify-content:flex-end}.setting-edit-modal{max-width:500px;width:95%}.setting-edit-modal .form-group{margin-bottom:16px}.setting-edit-modal label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:#424242}.setting-edit-modal input{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;font-family:Consolas,Monaco,monospace}.setting-edit-modal input:focus{outline:none;border-color:#1976d2}.setting-edit-modal .hint{margin-top:6px;font-size:12px;color:#9e9e9e}.settings-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:#757575}.settings-error{padding:16px;background:#ffebee;border:1px solid #ef9a9a;border-radius:8px;color:#c62828;margin-bottom:24px}.settings-empty{text-align:center;padding:48px;color:#757575}.spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.idea-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;gap:12px}.idea-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.idea-card-header{display:flex;gap:8px;flex-wrap:wrap}.idea-status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.3px}.idea-tag-badge{padding:4px 10px;background:#f0f0f0;border-radius:12px;font-size:12px;color:#555}.idea-card-title{margin:0;font-size:18px;font-weight:600;color:#333;line-height:1.4}.idea-card-description{margin:0;font-size:14px;color:#666;line-height:1.6;flex:1}.idea-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #f0f0f0}.idea-author{display:flex;align-items:center;gap:10px}.author-avatar{width:36px;height:36px;border-radius:50%;background:#1976d2;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;text-transform:uppercase}.author-info{display:flex;flex-direction:column;gap:2px}.author-name{font-size:13px;font-weight:500;color:#333}.idea-date{font-size:12px;color:#999}.idea-comments-count{display:flex;align-items:center;gap:6px;font-size:14px;color:#666}.comments-icon{width:18px;height:18px;object-fit:contain;opacity:.7}.idea-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-loading,.modal-error{padding:60px;text-align:center;color:#666}.idea-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.header-badges{display:flex;gap:10px}.status-badge{padding:6px 14px;border-radius:16px;font-size:13px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.3px}.tag-badge{padding:6px 14px;background:#f0f0f0;border-radius:16px;font-size:13px;color:#555}.modal-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;line-height:1}.idea-modal-body{flex:1;overflow-y:auto;padding:24px}.idea-title{margin:0 0 20px;font-size:24px;font-weight:600;color:#333;line-height:1.3}.idea-meta{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee;flex-wrap:wrap;gap:16px}.idea-author-info{display:flex;align-items:center;gap:12px}.author-avatar{width:40px;height:40px;border-radius:50%;background:#1976d2;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;text-transform:uppercase}.author-avatar.small{width:32px;height:32px;font-size:13px}.idea-author-info>div{display:flex;flex-direction:column;gap:2px}.author-name{font-size:14px;font-weight:500;color:#333}.idea-date{font-size:13px;color:#999}.idea-actions{display:flex;gap:10px;align-items:center}.status-select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer;outline:none}.status-select:focus{border-color:#667eea}.btn-sm{padding:8px 14px!important;font-size:13px!important}.btn-danger{background:#f44336!important;color:#fff!important}.btn-danger:hover:not(:disabled){background:#d32f2f!important}.idea-description{font-size:15px;line-height:1.7;color:#444;white-space:pre-wrap;word-wrap:break-word}.edit-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#333}.form-group input,.form-group textarea{padding:10px 14px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:#667eea}.form-group textarea{resize:vertical;min-height:120px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.comments-section{margin-top:30px;padding-top:20px;border-top:1px solid #eee}.comments-section h3{margin:0 0 16px;font-size:18px;color:#333}.comment-form{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.comment-form textarea{padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;resize:vertical;min-height:80px;outline:none;transition:border-color .2s}.comment-form textarea:focus{border-color:#667eea}.comment-form button{align-self:flex-end}.comments-list{display:flex;flex-direction:column;gap:16px}.comment-item{background:#f9f9f9;border-radius:8px;padding:14px}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.comment-author{display:flex;align-items:center;gap:10px}.comment-date{font-size:12px;color:#999}.btn-delete-comment{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;line-height:1}.btn-delete-comment:hover{color:#f44336}.no-comments{text-align:center;padding:20px;color:#999;font-size:14px}.delete-confirm-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;border-radius:12px}.delete-confirm-dialog{background:#fff;border-radius:8px;padding:24px;max-width:400px;text-align:center}.delete-confirm-dialog h4{margin:0 0 10px;font-size:18px;color:#333}.delete-confirm-dialog p{margin:0 0 20px;font-size:14px;color:#666}.add-idea-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.add-idea-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.add-idea-modal .modal-header h2{margin:0;font-size:20px;color:#333}.add-idea-modal .modal-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;line-height:1}.add-idea-modal .modal-close:hover{color:#333}.add-idea-modal .modal-body{flex:1;overflow-y:auto;padding:24px}.add-idea-modal .form-group{margin-bottom:20px}.add-idea-modal .form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#333}.add-idea-modal .required{color:#f44336}.add-idea-modal .form-group input,.add-idea-modal .form-group textarea,.add-idea-modal .form-group select{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.add-idea-modal .form-group input:focus,.add-idea-modal .form-group textarea:focus,.add-idea-modal .form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.add-idea-modal .form-group textarea{resize:vertical;min-height:150px;font-family:inherit}.add-idea-modal .field-hint{margin-top:6px;font-size:12px;color:#999}.add-idea-modal .error-message{display:block;margin-top:6px;font-size:13px;color:#f44336}.idea-tips{background:#f8f9ff;border-radius:8px;padding:16px;margin-top:10px}.idea-tips h4{margin:0 0 10px;font-size:14px;color:#667eea}.idea-tips ul{margin:0;padding-left:20px}.idea-tips li{font-size:13px;color:#666;margin-bottom:6px;line-height:1.4}.idea-tips li:last-child{margin-bottom:0}.add-idea-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #eee;background:#fafafa}.add-idea-modal .btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.add-idea-modal .btn:disabled{opacity:.5;cursor:not-allowed}.add-idea-modal .btn-primary{background:#1976d2;color:#fff}.add-idea-modal .btn-primary:hover:not(:disabled){background:#1565c0}.add-idea-modal .btn-secondary{background:#fff;border:1px solid #ddd;color:#333}.add-idea-modal .btn-secondary:hover:not(:disabled){border-color:#999}.ideas-page{display:flex;gap:24px;padding:20px;min-height:calc(100vh - 60px);background:#fff;flex-direction:row-reverse}.ideas-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.btn-add-idea{width:100%;padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-add-idea:hover{background:#1565c0}.sidebar-section{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.sidebar-section h3{margin:0 0 12px;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:.5px}.statistics-block{display:flex;flex-direction:column;gap:12px}.stat-total{display:flex;align-items:baseline;gap:8px;padding-bottom:12px;border-bottom:1px solid #eee}.stat-value{font-size:32px;font-weight:700;color:#333}.stat-label{font-size:14px;color:#666}.stat-by-status{display:flex;flex-direction:column;gap:8px}.stat-status-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .2s}.stat-status-item:hover{background:#f5f5f5}.stat-status-item.active{background:#e3f2fd}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--status-color, #999)}.status-label{flex:1;font-size:14px;color:#333}.status-count{font-size:14px;font-weight:600;color:#666}.tags-filter{display:flex;flex-wrap:wrap;gap:8px}.tag-chip{padding:6px 12px;background:#f0f0f0;border-radius:16px;font-size:13px;color:#555;cursor:pointer;transition:all .2s}.tag-chip:hover{background:#e0e0e0}.tag-chip.active{background:#1976d2;color:#fff}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#333}.checkbox-label input{width:18px;height:18px;cursor:pointer}.btn-clear-filters{width:100%;padding:10px;background:transparent;border:1px solid #ddd;border-radius:6px;font-size:14px;color:#666;cursor:pointer;transition:all .2s}.btn-clear-filters:hover{border-color:#999;color:#333}.ideas-content{flex:1;display:flex;flex-direction:column;min-width:0}.ideas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ideas-header h1{margin:0;font-size:24px;color:#333}.search-box input{width:300px;padding:10px 16px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.search-box input:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.active-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#e3f2fd;border-radius:16px;font-size:13px;color:#1976d2}.filter-tag button{background:none;border:none;padding:0;margin-left:4px;font-size:16px;color:#1976d2;cursor:pointer;line-height:1}.filter-tag button:hover{color:#333}.ideas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#f5f5f5;border-radius:8px;text-align:center}.loading-small{padding:10px;text-align:center;color:#666;font-size:14px}.empty-icon{font-size:64px;margin-bottom:16px}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding:16px}.page-info{font-size:14px;color:#666}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary{background:#fff;border:1px solid #ddd;color:#333}.btn-secondary:hover:not(:disabled){border-color:#999}@media (max-width: 1024px){.ideas-page{flex-direction:column}.ideas-sidebar{width:100%;flex-direction:row;flex-wrap:wrap}.btn-add-idea{width:auto;flex:1;min-width:200px}.sidebar-section{flex:1;min-width:200px}}@media (max-width: 768px){.ideas-header{flex-direction:column;gap:16px;align-items:stretch}.search-box input{width:100%}.ideas-grid{grid-template-columns:1fr}}.topic-tree{padding:0}.topic-tree-empty{padding:24px;text-align:center;color:#9e9e9e}.topic-tree-item{-webkit-user-select:none;user-select:none}.topic-row{display:flex;align-items:center;padding:8px 16px;cursor:pointer;transition:background .15s;position:relative}.topic-row:hover{background:#f5f7fa}.topic-row.selected{background:#e3f2fd}.topic-row.selected:hover{background:#bbdefb}.topic-toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#757575;flex-shrink:0}.topic-toggle.invisible{visibility:hidden}.topic-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-right:8px;font-size:16px;flex-shrink:0}.topic-icon img{width:20px;height:20px;object-fit:contain}.topic-name{flex:1;font-size:14px;color:#424242;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-count{font-size:12px;color:#9e9e9e;background:#f5f5f5;padding:2px 8px;border-radius:10px;margin-left:8px}.topic-menu-btn{width:24px;height:24px;border:none;background:none;cursor:pointer;font-size:14px;color:#9e9e9e;border-radius:4px;opacity:0;transition:all .2s;margin-left:8px}.topic-row:hover .topic-menu-btn{opacity:1}.topic-menu-btn:hover{background:#e0e0e0;color:#424242}.topic-menu{position:absolute;right:8px;top:100%;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;min-width:160px;z-index:100;overflow:hidden}.topic-menu button{display:block;width:100%;padding:10px 16px;border:none;background:none;font-size:14px;color:#424242;cursor:pointer;text-align:left}.topic-menu button:hover{background:#f5f5f5}.topic-menu button.danger{color:#d32f2f}.topic-menu button.danger:hover{background:#ffebee}.article-row{display:flex;align-items:center;padding:6px 16px;cursor:pointer;transition:background .15s;font-size:13px}.article-row:hover{background:#f5f7fa}.article-row.selected{background:#e8f4fd}.article-row.draft{opacity:.7}.article-icon{font-size:14px;margin-right:8px;flex-shrink:0;display:flex;align-items:center}.article-icon img{width:16px;height:16px;object-fit:contain}.article-name{flex:1;color:#616161;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.article-row .draft-badge{font-size:10px;padding:2px 6px;background:#fff3e0;color:#e65100;border-radius:8px;margin-left:8px}.loading-articles{padding:8px 16px;font-size:12px;color:#9e9e9e}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;padding:16px}.topic-card{display:flex;flex-direction:column;align-items:center;padding:16px 12px;background:#f9f9f9;border-radius:8px;cursor:pointer;transition:all .2s;text-align:center}.topic-card:hover{background:#f0f0f0;transform:translateY(-2px)}.topic-card.selected{background:#e3f2fd;box-shadow:0 2px 8px #1976d233}.topic-card-icon{font-size:32px;margin-bottom:8px}.topic-card-icon img{width:32px;height:32px;object-fit:contain}.topic-card-name{font-size:13px;font-weight:500;color:#424242;margin-bottom:4px;word-break:break-word}.topic-card-count{font-size:11px;color:#9e9e9e}.article-list{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.article-list-breadcrumb{display:flex;align-items:center;gap:8px;padding:16px 20px;background:#f9f9f9;border-bottom:1px solid #e0e0e0;font-size:14px;color:#616161}.breadcrumb-icon{font-size:16px}.article-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0}.article-list-header h2{margin:0;font-size:18px;font-weight:600;color:#212121}.article-list-empty{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center}.article-list-empty .empty-icon{font-size:48px;margin-bottom:16px}.article-list-empty p{color:#757575;margin-bottom:20px}.article-items{padding:8px 0}.article-item{display:flex;align-items:center;padding:12px 20px;cursor:pointer;transition:background .15s}.article-item:hover{background:#f5f7fa}.article-item.draft{opacity:.7}.article-item-icon{font-size:20px;margin-right:12px;flex-shrink:0}.article-item-content{flex:1;min-width:0}.article-item-title{font-size:15px;font-weight:500;color:#212121;margin-bottom:4px;display:flex;align-items:center;gap:8px}.draft-badge{font-size:11px;font-weight:400;padding:2px 8px;background:#fff3e0;color:#e65100;border-radius:10px}.article-item-meta{display:flex;align-items:center;gap:16px;font-size:13px;color:#9e9e9e}.article-item-meta .author{color:#616161}.article-item-meta .views{font-size:12px}.article-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.article-item:hover .article-item-actions{opacity:1}.btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;border-radius:4px;transition:background .2s}.btn-icon:hover{background:#e0e0e0}.btn-icon.btn-delete:hover{background:#ffebee}.btn-icon img{width:16px;height:16px}.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:20px}.article-card{display:flex;flex-direction:column;align-items:center;padding:20px 16px;background:#f9f9f9;border-radius:8px;cursor:pointer;transition:all .2s;text-align:center}.article-card:hover{background:#f0f0f0;transform:translateY(-2px)}.article-card-icon{font-size:32px;margin-bottom:12px}.article-card-title{font-size:14px;font-weight:500;color:#424242;margin-bottom:8px;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card-meta{font-size:12px;color:#9e9e9e}.article-view{height:100%;display:flex;flex-direction:column}.article-view.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#757575}.article-view.loading .spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.article-view.empty{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#757575}.article-view-breadcrumb{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#f9f9f9;border-bottom:1px solid #e0e0e0;font-size:14px}.btn-back{display:flex;align-items:center;gap:4px;padding:6px 12px;border:none;background:#fff;color:#1976d2;font-size:14px;cursor:pointer;border-radius:4px;transition:all .2s}.btn-back:hover{background:#e3f2fd}.breadcrumb-separator{color:#bdbdbd}.breadcrumb-topic{display:flex;align-items:center;gap:6px;color:#616161}.breadcrumb-icon{width:18px;height:18px;object-fit:contain}.breadcrumb-icon-emoji{font-size:14px}.article-view-card{flex:1;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin:16px;overflow:auto}.article-view-toolbar{display:flex;justify-content:flex-end;padding:12px 20px;border-bottom:1px solid #f0f0f0}.btn-edit{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #1976d2;background:#fff;color:#1976d2;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s}.btn-edit:hover{background:#e3f2fd}.btn-edit img{width:16px;height:16px}.btn-delete{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #d32f2f;background:#fff;color:#d32f2f;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s;margin-left:8px}.btn-delete:hover{background:#ffebee}.btn-delete img{width:16px;height:16px}.article-view-title{margin:0;padding:20px 24px 16px;font-size:28px;font-weight:600;color:#212121;line-height:1.3}.article-view-content{padding:0 24px 24px;font-size:16px;line-height:1.7;color:#424242}.article-view-content h1{font-size:24px;font-weight:600;margin:24px 0 16px;color:#212121}.article-view-content h2{font-size:20px;font-weight:600;margin:20px 0 12px;color:#212121}.article-view-content h3{font-size:18px;font-weight:600;margin:16px 0 10px;color:#212121}.article-view-content p{margin:0 0 16px}.article-view-content ul,.article-view-content ol{margin:0 0 16px;padding-left:24px}.article-view-content li{margin-bottom:8px}.article-view-content blockquote{margin:16px 0;padding:12px 20px;border-left:4px solid #1976d2;background:#f5f5f5;font-style:italic;color:#616161}.article-view-content pre{margin:16px 0;padding:16px;background:#263238;color:#eceff1;border-radius:8px;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.5}.article-view-content code{padding:2px 6px;background:#f5f5f5;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:14px}.article-view-content pre code{padding:0;background:none}.article-view-content a{color:#1976d2;text-decoration:none}.article-view-content a:hover{text-decoration:underline}.article-view-content mark{background-color:#fff59d;padding:0 2px;border-radius:2px}.article-view-content img{max-width:100%;height:auto;border-radius:8px;margin:16px 0}.article-view-content table{width:100%;border-collapse:collapse;margin:16px 0}.article-view-content th,.article-view-content td{padding:12px;border:1px solid #e0e0e0;text-align:left}.article-view-content th{background:#f5f5f5;font-weight:600}.article-view-content hr{border:none;border-top:1px solid #e0e0e0;margin:24px 0}.article-view-attachments{padding:20px 24px;border-top:1px solid #f0f0f0}.article-view-attachments h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#424242}.attachments-list{display:flex;flex-wrap:wrap;gap:8px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f5f5f5;border-radius:6px;text-decoration:none;color:#424242;font-size:14px;transition:background .2s}.attachment-item:hover{background:#e0e0e0}.attachment-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{color:#9e9e9e;font-size:12px}.article-view-meta{display:flex;flex-wrap:wrap;gap:20px;padding:16px 24px;border-top:1px solid #f0f0f0;font-size:13px;color:#757575}.meta-author{color:#424242}.meta-date,.meta-views{color:#9e9e9e}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.topic-modal{background:#fff;border-radius:12px;width:480px;max-width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#212121}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:18px;color:#9e9e9e;cursor:pointer;border-radius:4px;transition:all .2s}.modal-close:hover{background:#f5f5f5;color:#424242}.modal-body{padding:24px;overflow-y:auto}.parent-topic-info{padding:12px 16px;background:#e3f2fd;border-radius:6px;margin-bottom:20px;font-size:14px;color:#1565c0}.modal-error{padding:12px 16px;background:#ffebee;border-radius:6px;margin-bottom:20px;font-size:14px;color:#c62828}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#424242}.form-group input[type=text],.form-group textarea{width:100%;padding:12px 14px;border:1px solid #e0e0e0;border-radius:6px;font-size:15px;transition:border-color .2s;box-sizing:border-box}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#1976d2}.icon-upload{display:flex;align-items:center;gap:16px}.icon-preview{width:64px;height:64px;border-radius:8px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-preview img{width:100%;height:100%;object-fit:cover}.icon-placeholder{font-size:32px}.icon-upload input[type=file]{display:none}.btn-upload{padding:10px 16px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;color:#424242;cursor:pointer;transition:all .2s}.btn-upload:hover{background:#e0e0e0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e0e0e0;background:#fafafa}.btn-cancel{padding:10px 20px;border:1px solid #e0e0e0;background:#fff;color:#616161;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s}.btn-cancel:hover{background:#f5f5f5}.btn-primary{padding:10px 24px;border:none;background:#1976d2;color:#fff;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s}.btn-primary:disabled{background:#bdbdbd;cursor:not-allowed}.article-editor{display:flex;flex-direction:column;border:1px solid #e0e0e0;border-radius:8px;background:#fff;overflow:hidden}.editor-menubar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;background:#f9f9f9;border-bottom:1px solid #e0e0e0}.menubar-group{display:flex;align-items:center;gap:2px}.menubar-divider{width:1px;height:24px;background:#e0e0e0;margin:0 6px}.editor-menubar button{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:none;background:transparent;color:#424242;font-size:14px;cursor:pointer;border-radius:4px;transition:all .15s}.editor-menubar button img{width:18px;height:18px;object-fit:contain}.editor-menubar button:hover{background:#e0e0e0}.editor-menubar button.is-active{background:#1976d2;color:#fff}.editor-menubar button:disabled{opacity:.4;cursor:not-allowed}.editor-menubar button.btn-danger:hover{background:#ffebee;color:#d32f2f}.link-input-wrapper{display:flex;align-items:center;gap:4px}.link-input{width:200px;padding:6px 10px;border:1px solid #e0e0e0;border-radius:4px;font-size:13px}.link-input:focus{outline:none;border-color:#1976d2}.link-btn-ok{color:#4caf50!important}.link-btn-cancel{color:#f44336!important}.editor-content{min-height:300px;max-height:500px;overflow-y:auto}.editor-content .ProseMirror{padding:16px 20px;min-height:300px;outline:none}.editor-content .ProseMirror:focus{outline:none}.editor-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#9e9e9e;pointer-events:none;height:0}.editor-content .ProseMirror{font-size:16px;line-height:1.7;color:#424242}.editor-content .ProseMirror h1{font-size:24px;font-weight:600;margin:24px 0 16px;color:#212121}.editor-content .ProseMirror h2{font-size:20px;font-weight:600;margin:20px 0 12px;color:#212121}.editor-content .ProseMirror h3{font-size:18px;font-weight:600;margin:16px 0 10px;color:#212121}.editor-content .ProseMirror p{margin:0 0 16px}.editor-content .ProseMirror ul,.editor-content .ProseMirror ol{margin:0 0 16px;padding-left:24px}.editor-content .ProseMirror li{margin-bottom:8px}.editor-content .ProseMirror li p{margin:0}.editor-content .ProseMirror blockquote{margin:16px 0;padding:12px 20px;border-left:4px solid #1976d2;background:#f5f5f5;font-style:italic;color:#616161}.editor-content .ProseMirror blockquote p{margin:0}.editor-content .ProseMirror pre{margin:16px 0;padding:16px;background:#263238;color:#eceff1;border-radius:8px;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.5}.editor-content .ProseMirror code{padding:2px 6px;background:#f5f5f5;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:14px}.editor-content .ProseMirror pre code{padding:0;background:none;color:inherit}.editor-content .ProseMirror a{color:#1976d2;text-decoration:underline;cursor:pointer}.editor-content .ProseMirror mark{background-color:#fff59d;padding:0 2px;border-radius:2px}.editor-content .ProseMirror img{max-width:100%;height:auto;border-radius:8px;margin:16px 0}.editor-content .ProseMirror img.ProseMirror-selectednode{outline:3px solid #1976d2}.editor-content .ProseMirror hr{border:none;border-top:2px solid #e0e0e0;margin:24px 0}.editor-content .ProseMirror table{width:100%;border-collapse:collapse;margin:16px 0;table-layout:fixed}.editor-content .ProseMirror th,.editor-content .ProseMirror td{padding:12px;border:1px solid #e0e0e0;text-align:left;vertical-align:top;position:relative}.editor-content .ProseMirror th{background:#f5f5f5;font-weight:600}.editor-content .ProseMirror th p,.editor-content .ProseMirror td p{margin:0}.editor-content .ProseMirror .selectedCell:after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:#1976d21a;pointer-events:none}.image-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal{background:#fff;border-radius:12px;padding:24px;width:400px;max-width:90%}.image-modal h3{margin:0 0 20px;font-size:18px;font-weight:600;color:#212121}.image-modal-tabs{display:flex;flex-direction:column;gap:16px}.image-option{display:flex;flex-direction:column;gap:8px}.image-option label{font-size:14px;font-weight:500;color:#424242}.image-option input[type=url],.image-option input[type=file]{padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px}.image-option input[type=url]:focus{outline:none;border-color:#1976d2}.image-option button{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.image-option button:hover:not(:disabled){background:#1565c0}.image-option button:disabled{background:#bdbdbd;cursor:not-allowed}.image-option-divider{text-align:center;color:#9e9e9e;font-size:13px}.image-modal-close{width:100%;margin-top:16px;padding:10px;background:#f5f5f5;border:none;border-radius:6px;font-size:14px;color:#616161;cursor:pointer;transition:background .2s}.image-modal-close:hover{background:#e0e0e0}.image-option input[type=text]{padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px}.image-option input[type=text]:focus{outline:none;border-color:#1976d2}.file-insert-btn{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.file-insert-btn:hover:not(:disabled){background:#1565c0}.file-insert-btn:disabled{background:#bdbdbd;cursor:not-allowed}.file-hint{margin-top:8px;padding:12px;background:#fff3e0;border-radius:6px;font-size:13px;color:#e65100;line-height:1.4}.editor-content .ProseMirror .file-link{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#f5f5f5;border-radius:4px;text-decoration:none;color:#1976d2;font-size:14px}.editor-content .ProseMirror .file-link:hover{background:#e3f2fd}.article-editor-overlay{padding:20px}.article-editor-modal{background:#fff;border-radius:12px;width:900px;max-width:100%;max-height:calc(100vh - 40px);overflow:hidden;display:flex;flex-direction:column;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#757575}.modal-loading .spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.article-editor-modal .modal-header{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid #e0e0e0}.article-editor-modal .modal-header h2{margin:0;font-size:18px;font-weight:600;color:#212121}.header-topic{flex:1}.topic-select{padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;color:#424242;background:#fff;min-width:200px;cursor:pointer}.topic-select:focus{outline:none;border-color:#1976d2}.topic-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#f5f5f5;border-radius:16px;font-size:13px;color:#616161}.topic-badge .topic-icon{font-size:14px}.article-editor-modal .modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:18px;color:#9e9e9e;cursor:pointer;border-radius:4px;transition:all .2s}.article-editor-modal .modal-close:hover{background:#f5f5f5;color:#424242}.article-form{display:flex;flex-direction:column;flex:1;overflow:hidden}.article-editor-modal .modal-body{flex:1;padding:20px 24px;overflow-y:auto}.article-editor-modal .modal-error{padding:12px 16px;background:#ffebee;border-radius:6px;margin-bottom:16px;font-size:14px;color:#c62828}.title-group{margin-bottom:16px}.title-input{width:100%;padding:14px 16px;border:1px solid #e0e0e0;border-radius:8px;font-size:20px;font-weight:500;color:#212121;box-sizing:border-box}.title-input:focus{outline:none;border-color:#1976d2}.title-input::placeholder{color:#9e9e9e}.editor-group{margin-bottom:16px}.attachments-group{margin-bottom:16px;padding:16px;background:#fafafa;border-radius:8px}.attachments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.attachments-header label{font-size:14px;font-weight:500;color:#424242}.btn-add-attachment{padding:6px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;color:#1976d2;cursor:pointer;transition:all .2s}.btn-add-attachment:hover{background:#e3f2fd;border-color:#1976d2}.attachments-list{display:flex;flex-direction:column;gap:8px}.attachment-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px}.attachment-icon{font-size:16px}.attachment-name{flex:1;font-size:14px;color:#424242;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{font-size:12px;color:#9e9e9e}.attachment-delete{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#9e9e9e;cursor:pointer;border-radius:4px;transition:all .2s}.attachment-delete:hover{background:#ffebee;color:#d32f2f}.publish-options{padding:16px;background:#f5f5f5;border-radius:8px}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#424242;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.publish-hint{display:block;margin-top:8px;margin-left:28px;font-size:13px;color:#757575}.article-editor-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e0e0e0;background:#fafafa}.btn-draft{padding:10px 20px;border:1px solid #ff9800;background:#fff;color:#f57c00;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s}.btn-draft:hover:not(:disabled){background:#fff3e0}.btn-draft:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.article-editor-modal{width:100%;max-height:100vh;border-radius:0}.article-editor-overlay{padding:0}.article-editor-modal .modal-header{flex-wrap:wrap}.header-topic{width:100%;order:3;margin-top:8px}}.delete-confirm-modal{background:#fff;border-radius:12px;width:400px;max-width:90%;padding:32px;text-align:center;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.delete-icon{font-size:48px;margin-bottom:16px}.delete-confirm-modal h3{margin:0 0 12px;font-size:20px;font-weight:600;color:#212121}.delete-confirm-modal p{margin:0 0 8px;font-size:15px;color:#616161;line-height:1.5}.delete-confirm-modal p strong{color:#212121}.delete-warning{color:#d32f2f!important;font-size:13px!important;margin-top:16px!important}.delete-actions{display:flex;gap:12px;margin-top:24px}.delete-actions .btn-cancel{flex:1;padding:12px 20px;border:1px solid #e0e0e0;background:#fff;color:#616161;font-size:14px;cursor:pointer;border-radius:8px;transition:all .2s}.delete-actions .btn-cancel:hover{background:#f5f5f5}.delete-actions .btn-delete{flex:1;padding:12px 20px;border:none;background:#d32f2f;color:#fff;font-size:14px;cursor:pointer;border-radius:8px;transition:all .2s}.delete-actions .btn-delete:hover:not(:disabled){background:#b71c1c}.delete-actions .btn-delete:disabled{background:#ef9a9a;cursor:not-allowed}.kb-page{display:flex;flex-direction:column;height:100%;background:#f5f7fa}.kb-header{padding:16px 24px;background:#fff;border-bottom:1px solid #e0e0e0}.kb-header h1{margin:0;font-size:24px;font-weight:600;color:#212121}.kb-content{display:flex;flex:1;overflow:hidden}.kb-sidebar{width:320px;min-width:320px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column}.kb-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0}.kb-create-dropdown{position:relative}.btn-create-dropdown{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#1976d2;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-create-dropdown:hover{background:#1565c0}.dropdown-arrow{font-size:10px}.kb-create-dropdown .dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;min-width:180px;z-index:100}.kb-create-dropdown .dropdown-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:none;font-size:14px;color:#424242;cursor:pointer;text-align:left}.kb-create-dropdown .dropdown-menu button:hover{background:#f5f5f5}.kb-create-dropdown .dropdown-menu button img{width:18px;height:18px}.kb-view-toggle{display:flex;background:#f5f5f5;border-radius:6px;overflow:hidden}.kb-view-toggle button{padding:6px 12px;border:none;background:none;font-size:14px;cursor:pointer;color:#757575;transition:all .2s}.kb-view-toggle button.active{background:#fff;color:#1976d2;box-shadow:0 1px 3px #0000001a}.kb-view-toggle button img{width:18px;height:18px;object-fit:contain;opacity:.6;transition:opacity .2s}.kb-view-toggle button.active img{opacity:1}.kb-search{padding:12px 16px;border-bottom:1px solid #f0f0f0}.kb-search input{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.kb-search input:focus{border-color:#1976d2}.kb-tree-container{flex:1;overflow-y:auto;padding:8px 0}.kb-main{flex:1;overflow-y:auto;padding:24px}.kb-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:#757575}.kb-empty-icon{font-size:64px;margin-bottom:16px}.kb-empty h2{margin:0 0 8px;font-size:20px;color:#424242}.kb-empty p{margin:0 0 24px}.kb-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.kb-loading .spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.btn-primary{padding:10px 20px;background:#1976d2;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary{padding:10px 20px;background:#f5f5f5;color:#424242;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#e0e0e0}@media (max-width: 900px){.kb-sidebar{width:280px;min-width:280px}}@media (max-width: 768px){.kb-content{flex-direction:column}.kb-sidebar{width:100%;min-width:100%;max-height:40vh;border-right:none;border-bottom:1px solid #e0e0e0}.kb-main{flex:1;min-height:0}}.fleet-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.fleet-toolbar .toolbar-left{display:flex;gap:12px;align-items:center}.fleet-toolbar .toolbar-right{display:flex;gap:16px;align-items:center}.fleet-toolbar .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text)}.fleet-toolbar .checkbox-label input{width:16px;height:16px;cursor:pointer}.fleet-filters{margin-bottom:16px}.fleet-filters .filter-row{display:flex;gap:12px;align-items:center;flex-wrap:nowrap}.fleet-filters .filter-group{position:relative}.fleet-filters .filter-group.search-group{flex:1;min-width:280px;position:relative}.fleet-filters .filter-group.search-group .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:.5}.fleet-filters .filter-group.search-group input{width:100%;padding:10px 12px 10px 36px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text)}.fleet-filters .filter-group.search-group input:focus{outline:none;border-color:var(--primary)}.fleet-filters .filter-group select{padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);min-width:150px;cursor:pointer}.fleet-filters .filter-group select:focus{outline:none;border-color:var(--primary)}.fleet-filters .btn-reset{padding:10px 16px;border:none;border-radius:6px;background:transparent;color:var(--primary);font-size:14px;cursor:pointer;white-space:nowrap}.fleet-filters .btn-reset:hover{background:var(--background)}.fleet-grid-container{background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:hidden}.fleet-grid{width:100%;border-collapse:collapse}.fleet-grid th,.fleet-grid td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.fleet-grid th{background:var(--background);font-weight:600;font-size:13px;color:var(--text);white-space:nowrap}.fleet-grid tbody tr{transition:background .15s}.fleet-grid tbody tr:hover{background:#00000005}.fleet-grid tbody tr.selected{background:#1976d214}.fleet-grid tbody tr:last-child td{border-bottom:none}.fleet-grid .col-checkbox{width:40px;text-align:center}.fleet-grid .col-checkbox input{width:16px;height:16px;cursor:pointer}.fleet-grid .col-photo{width:60px}.fleet-grid .col-status{width:130px}.fleet-grid .col-actions{width:110px;text-align:center}.fleet-grid .vehicle-photo{width:50px;height:50px;object-fit:contain!important;border-radius:6px;background:var(--background);padding:4px}.fleet-grid .vehicle-photo-placeholder{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--background);border-radius:6px}.fleet-grid .vehicle-photo-placeholder img{width:24px;height:24px;opacity:.5}.fleet-grid .col-name .vehicle-brand{font-weight:600;color:var(--text)}.fleet-grid .col-name .vehicle-model{font-size:13px;color:var(--muted)}.fleet-grid .col-color{width:120px}.fleet-grid .color-cell{display:flex;align-items:center;gap:8px}.fleet-grid .color-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.fleet-grid .color-name{font-size:13px;color:var(--text)}.fleet-grid .col-license-plate{font-family:monospace;font-weight:600;letter-spacing:1px}.fleet-grid .status-cell{display:flex;align-items:center;gap:6px}.fleet-grid .status-icon{width:16px;height:16px}.fleet-grid .status-label{font-size:13px}.fleet-grid .date-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:13px}.fleet-grid .date-badge.date-expired{background:#f443361f;color:#d32f2f}.fleet-grid .date-badge.date-expiring{background:#ff98001f;color:#f57c00}.fleet-grid .col-actions{white-space:nowrap}.fleet-grid .btn-icon{padding:6px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:background .15s}.fleet-grid .btn-icon:hover{background:var(--background)}.fleet-grid .btn-icon.btn-delete:hover{background:transparent}.fleet-grid .action-icon{width:18px;height:18px}.fleet-grid-footer{padding:12px 16px;background:var(--background);border-top:1px solid var(--border);font-size:14px;color:var(--muted)}.fleet-grid-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.fleet-grid-loading .spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.fleet-grid-loading span{color:var(--muted);font-size:14px}.fleet-grid-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--surface);border-radius:8px;border:1px solid var(--border);color:var(--muted)}.fleet-grid-empty .empty-icon{width:48px;height:48px;margin-bottom:12px;opacity:.5}body.dark .fleet-grid tbody tr:hover{background:#ffffff05}.modal-overlay.nested{z-index:1100}.inspection-modal{max-width:500px}.type-options{display:flex;flex-direction:column;gap:8px}.type-option{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s}.type-option:hover{background:var(--background)}.type-option.active{border-color:var(--primary);background:#1976d20d}.type-option input{margin-top:2px;width:auto}.option-content{display:flex;flex-direction:column;gap:2px}.option-label{font-weight:500;color:var(--text)}.option-desc{font-size:12px;color:var(--muted)}.service-modal{max-width:600px}.vehicle-modal{max-width:700px}.tab-btn{display:flex;align-items:center;gap:6px;padding:12px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn .tab-icon{width:16px;height:16px;opacity:.6}.tab-content{padding:20px;min-height:300px}.tab-toolbar{margin-bottom:16px}.tab-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--muted)}.tab-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--muted)}.tab-empty .empty-icon{width:48px;height:48px;opacity:.5;margin-bottom:12px}.table-wrapper{overflow-x:auto;width:100%}.tab-table{width:100%;min-width:900px;border-collapse:collapse;border:1px solid var(--border);border-radius:6px;overflow:hidden}.tab-table th,.tab-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.tab-table th{background:var(--background);font-weight:600;color:var(--text)}.tab-table tbody tr:last-child td{border-bottom:none}.tab-table tbody tr:hover{background:#00000005}.tab-table .notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-table .row-expired{background:#f4433614}.tab-table .row-expired:hover{background:#f443361f}.type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.type-badge.cho{background:#e3f2fd;color:#1565c0}.type-badge.pto{background:#fff3e0;color:#e65100}.type-badge.scheduled{background:#e8f5e9;color:#2e7d32}.type-badge.unscheduled{background:#fce4ec;color:#c2185b}.photo-section{flex-shrink:0}.photo-preview{width:150px;height:150px;border:2px dashed var(--border);border-radius:8px;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.photo-preview:hover{border-color:var(--primary)}.photo-preview img{width:100%;height:100%;object-fit:contain!important;background:var(--background);padding:8px}.photo-placeholder{text-align:center;color:var(--muted)}.photo-placeholder .placeholder-icon{width:32px;height:32px;opacity:.5;margin-bottom:8px}.photo-placeholder p{font-size:12px;margin:0}.fields-section{flex:1}.modal-close img{width:16px;height:16px;opacity:.6}.modal-close:hover img{opacity:1}.select-with-add{display:flex;gap:8px}.select-with-add select{flex:1}.add-inline-btn{width:38px;height:38px;padding:6px;background:#1976d21a;border:1px solid var(--primary);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.add-inline-btn:hover{background:var(--primary)}.add-inline-btn img{width:16px;height:16px;transition:filter .2s}.add-inline-btn:hover img{filter:brightness(0) invert(1)}.history-tab{max-height:400px;overflow-y:auto}.history-timeline{display:flex;flex-direction:column;gap:16px}.history-item{display:flex;gap:12px}.history-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.history-icon img{width:18px;height:18px;filter:brightness(0) invert(1)}.history-content{flex:1;padding-bottom:16px;border-bottom:1px solid var(--border)}.history-item:last-child .history-content{border-bottom:none;padding-bottom:0}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.history-type{font-weight:500;color:var(--text)}.history-date{font-size:12px;color:var(--muted)}.history-description{font-size:13px;color:var(--text);margin-bottom:4px}.history-values{font-size:13px;display:flex;align-items:center;gap:8px}.history-values .old-value{color:var(--muted);text-decoration:line-through}.history-values .arrow{color:var(--muted)}.history-values .new-value{color:var(--success);font-weight:500}.history-user{font-size:12px;color:var(--muted);margin-top:4px}.vehicle-fleet-page{padding:20px;height:100%;display:flex;flex-direction:column}.vehicle-fleet-page .page-header{display:flex;justify-content:space-between;align-items:center}.calendar-view{height:100%;display:flex;flex-direction:column}.calendar-grid{flex:1;overflow:auto}.calendar-header{display:flex;position:sticky;top:0;background:var(--card-bg);z-index:2;border-bottom:2px solid var(--border)}.header-vehicle{width:200px;max-width:200px;min-width:200px;padding:12px 16px;font-weight:600;font-size:13px;color:var(--muted);background:var(--background);border-right:1px solid var(--border)}.header-dates{display:flex;flex:1}.header-date{flex:1;min-width:60px;padding:8px 4px;text-align:center;border-right:1px solid var(--border);background:var(--background)}.header-date:last-child{border-right:none}.header-date.today{background:#3186a81a}.header-date.weekend{background:#00000008}.header-date .date-weekday{display:block;font-size:11px;color:var(--muted);text-transform:capitalize}.header-date .date-day{display:block;font-size:14px;font-weight:600;color:var(--text)}.header-date.today .date-day{color:#3186a8}.calendar-body{flex:1}.calendar-row{display:flex;border-bottom:1px solid var(--border)}.calendar-row:last-child{border-bottom:none}.calendar-row.outsource-section{background:#3186a808}.row-vehicle{width:200px;max-width:200px;min-width:200px;padding:12px 16px;display:flex;flex-direction:row;align-items:center;gap:12px;border-right:1px solid var(--border);background:var(--background)}.vehicle-preview-icon{width:41px;height:41px;border-radius:4px;object-fit:contain;flex-shrink:0}.vehicle-info{display:flex;flex-direction:column;justify-content:center;overflow:hidden;flex:1;min-width:0;max-width:100%}.vehicle-name{font-size:13px;font-weight:500;color:var(--text);word-wrap:break-word;white-space:normal;line-height:1.3}.vehicle-plate{font-size:11px;color:var(--muted);margin-top:2px}.row-timeline{flex:1;position:relative;min-height:48px}.timeline-cells{display:flex;height:100%}.timeline-cell{flex:1;min-width:60px;border-right:1px solid var(--border)}.timeline-cell:last-child{border-right:none}.timeline-cell.today{background:#3186a80d}.timeline-cell.weekend{background:#00000005}.timeline-bookings{position:absolute;top:8px;left:0;right:0;bottom:8px;pointer-events:none}.booking-bar{position:absolute;top:0;height:100%;border-radius:12px;cursor:pointer;overflow:hidden;pointer-events:auto;transition:filter .15s;display:flex;align-items:center;gap:4px}.booking-bar-preview{width:41px;height:41px;border-radius:3px;object-fit:contain;margin-left:4px;flex-shrink:0}.booking-bar:hover{filter:brightness(1.1)}.booking-bar.own{background:#4caf50}.booking-bar.outsource{background:#3186a8}.booking-label{display:block;padding:4px 8px;font-size:11px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-legend{display:flex;gap:24px;padding:12px 16px;border-top:1px solid var(--border);background:var(--background)}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.legend-color{width:12px;height:12px;border-radius:3px}.legend-color.own{background:#4caf50}.legend-color.outsource{background:#3186a8}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--muted);font-size:14px}.calendar-table-container{height:100%;overflow:auto}.calendar-table{width:100%;border-collapse:collapse}.calendar-table th,.calendar-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.calendar-table th{background:var(--background);font-weight:600;color:var(--text);position:sticky;top:0;z-index:1}.calendar-table td{color:var(--text)}.calendar-table tbody tr:hover{background:#00000005}.calendar-table .col-actions{width:120px}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;color:#fff}.type-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.type-badge.own{background:#4caf5026;color:#2e7d32}.type-badge.outsource{background:#3186a826;color:#3186a8}.action-buttons .btn-icon{width:32px;height:32px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.action-buttons .btn-icon img{width:16px;height:16px;opacity:.6}.action-buttons .btn-icon:hover{background:var(--background)}.action-buttons .btn-icon:hover img{opacity:1}.action-buttons .btn-complete:hover{background:#4caf501a}.vehicle-cell{display:flex;align-items:center;gap:10px}.vehicle-preview-thumb{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0;background:var(--bg-secondary, #f0f0f0)}.calendar-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:60px 20px;color:var(--muted);font-size:14px}.calendar-table-empty .empty-icon{width:48px;height:48px;opacity:.5;margin-bottom:12px}.complete-booking-modal{max-width:500px}.booking-info{background:var(--background);padding:12px 16px;border-radius:6px;margin-bottom:20px}.info-item{display:flex;gap:8px;padding:4px 0}.info-label{font-size:13px;color:var(--muted);min-width:80px}.info-value{font-size:13px;color:var(--text);font-weight:500}.section-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.booking-view-modal{max-width:700px}.booking-view-modal .modal-body{flex:1 1 auto}.booking-view-modal .info-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.booking-view-modal .info-section:last-child{border-bottom:none;margin-bottom:0}.booking-view-modal .info-row{display:flex;align-items:stretch;padding:8px 0}.booking-view-modal .info-label{min-width:140px;font-weight:500;color:var(--text-secondary, #666);font-size:14px}.booking-view-modal .info-value{flex:1;color:var(--text);font-size:14px}.booking-view-modal .info-value.info-link{color:var(--primary, #3186a8);cursor:pointer}.booking-view-modal .info-value.info-link:hover{text-decoration:underline}.booking-view-modal .source-label{display:inline-block;padding:4px 12px;border-radius:4px;font-weight:500;font-size:13px}.booking-view-modal .source-label.own{background:#4caf501f;color:#388e3c}.booking-view-modal .source-label.outsource{background:#3186a81f;color:#3186a8}.statistics-section{padding:8px 0}.statistics-title{font-size:16px;font-weight:600;margin-bottom:20px;color:var(--text)}.statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-block{background:var(--bg-secondary, #f8f9fa);border-radius:8px;padding:16px;border:1px solid var(--border, #dee2e6)}.stat-header{font-size:12px;font-weight:600;color:var(--muted, #666);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.stat-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}.stat-label{color:var(--text-secondary, #888)}.stat-value{font-weight:500;color:var(--text)}.stat-row.stat-total{border-top:2px solid var(--border);margin-top:8px;padding-top:10px;font-weight:600}.stat-row.stat-total .stat-value{color:#3186a8;font-size:15px}.completion-notes{margin-top:20px;padding:16px;background:var(--bg-secondary, #f8f9fa);border-radius:8px;border:1px solid var(--border)}.completion-notes .info-label{display:block;margin-bottom:8px;font-weight:600;color:var(--text)}.completion-notes p{margin:0;font-size:14px;color:var(--text);line-height:1.5}.modal-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--background)}.tab-btn{display:flex;align-items:center;gap:6px;padding:12px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;color:var(--muted, #666);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:#3186a8;border-bottom-color:#3186a8}.calendar-page{padding:20px;height:100%;display:flex;flex-direction:column}.calendar-page .page-header{display:flex;justify-content:space-between;align-items:center}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 16px;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.calendar-toolbar .toolbar-left,.calendar-toolbar .toolbar-center,.calendar-toolbar .toolbar-right{display:flex;align-items:center;gap:8px}.calendar-toolbar .toolbar-center{gap:12px}.preview-checkbox{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.preview-checkbox input[type=checkbox]{cursor:pointer}.calendar-toolbar .btn.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:6px}.calendar-toolbar .btn.btn-icon img{width:21px;height:21px;opacity:.6}.calendar-toolbar .btn.btn-icon:hover{background:var(--background)}.calendar-toolbar .btn.btn-icon:hover img{opacity:1}.calendar-toolbar .date-range{font-size:14px;font-weight:500;color:var(--text);min-width:150px;text-align:center}.view-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.view-toggle .toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:var(--background);color:var(--muted);font-size:13px;cursor:pointer;transition:all .15s}.view-toggle .toggle-btn img{width:21px;height:21px;opacity:.5}.view-toggle .toggle-btn:not(:last-child){border-right:1px solid var(--border)}.view-toggle .toggle-btn:hover{background:var(--surface)}.view-toggle .toggle-btn.active{background:var(--primary);color:#fff}.view-toggle .toggle-btn.active img{opacity:1;filter:brightness(0) invert(1)}.calendar-content{flex:1;overflow:auto;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.loading-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:14px}.request-modal{max-width:550px}.planning-modal{max-width:600px}.modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-color);padding:0 20px}.tab-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:14px;color:var(--text-secondary);transition:all .2s}.tab-btn:hover{color:var(--text);background:var(--bg-hover)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-icon{width:18px;height:18px;opacity:.7}.tab-btn.active .tab-icon{opacity:1}.info-section{background:var(--bg-secondary);padding:16px;border-radius:8px;margin-bottom:16px}.info-row{display:flex;margin-bottom:8px}.info-row:last-child{margin-bottom:0}.info-label{width:120px;color:var(--text-secondary);flex-shrink:0;font-size:13px}.info-value{color:var(--text);font-size:14px}.info-link{color:var(--primary);font-weight:500}.vehicle-type{background:#3186a81f;color:#3186a8;padding:2px 8px;border-radius:4px;font-weight:500;font-size:13px}.section-divider{border:none;border-top:1px solid var(--border-color);margin:16px 0}.source-selector{display:flex;gap:8px;margin-bottom:16px}.source-btn{flex:1;padding:12px;border:2px solid var(--border-color);border-radius:8px;background:#fff;cursor:pointer;font-weight:500;font-size:14px;transition:all .2s;color:var(--text-secondary)}.source-btn:hover{border-color:var(--primary);color:var(--text)}.source-btn.active{border-color:#3186a8;background:#3186a81f;color:#3186a8}.form-hint{font-size:12px;color:var(--text-secondary);margin-top:4px}.form-hint.warning{color:var(--warning, #f59e0b)}.form-hint.error{padding:8px 12px;background:#f443361a;border-left:3px solid #f44336;border-radius:4px;color:#d32f2f;font-weight:500;margin-top:8px}.waybill-tab{min-height:300px}.waybill-upload{display:flex;flex-direction:column;align-items:center}.upload-area{width:100%;min-height:250px;border:2px dashed var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;background:var(--bg-secondary)}.upload-area:hover{border-color:var(--primary);background:var(--primary-light, rgba(99, 102, 241, .05))}.upload-placeholder{text-align:center;color:var(--text-secondary)}.upload-icon{width:48px;height:48px;opacity:.5;margin-bottom:8px}.upload-placeholder p{margin:0 0 4px;font-size:14px}.upload-hint{font-size:12px;color:var(--text-muted)}.waybill-preview{padding:16px;text-align:center}.waybill-preview img{max-width:100%;max-height:300px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.pdf-preview{display:flex;flex-direction:column;align-items:center;gap:8px}.pdf-icon{width:64px;height:64px}.pdf-preview span{font-size:14px;color:var(--text-secondary)}.waybill-actions{display:flex;gap:8px;margin-top:16px;justify-content:center}.btn-plan{transition:all .2s}.btn-plan:hover{background:var(--primary-light, rgba(99, 102, 241, .1))}.btn-plan img{filter:hue-rotate(240deg)}.requests-page{padding:20px;height:100%;display:flex;flex-direction:column}.requests-page .page-header{display:flex;justify-content:space-between;align-items:center}.requests-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.requests-toolbar .toolbar-info{margin-left:auto;font-size:14px;color:var(--muted)}.requests-filters{display:flex;align-items:flex-end;gap:16px;margin-bottom:16px;padding:16px;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.requests-filters .filter-group{display:flex;flex-direction:column;gap:6px}.requests-filters .filter-group label{font-size:12px;font-weight:500;color:var(--muted)}.requests-filters .filter-group select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:14px;min-width:150px}.requests-filters .filter-group select:focus{outline:none;border-color:var(--primary)}.requests-table-container{flex:1;overflow:auto;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.requests-table{width:100%;border-collapse:collapse}.requests-table th,.requests-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.requests-table th{background:var(--background);font-weight:600;color:var(--text);position:sticky;top:0;z-index:1}.requests-table td{color:var(--text)}.requests-table tbody tr:hover{background:#00000005}.requests-table .col-checkbox{width:40px;text-align:center}.requests-table .col-actions{width:120px}.requests-table .row-overdue{background:#f4433614}.requests-table .row-overdue:hover{background:#f443361f}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.link-button{background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;padding:0;text-decoration:underline}.link-button:hover{color:var(--primary-dark)}.action-buttons{display:flex;gap:4px}.action-buttons .btn-approve:hover{background:#4caf501a}.action-buttons .btn-plan:hover{background:#9c27b01a}.action-buttons .btn-delete:hover{background:#f443361a}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--muted);font-size:14px}.empty-state .empty-icon{width:48px;height:48px;opacity:.5;margin-bottom:12px}.map-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.map-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:16px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px}.toolbar-center{display:flex;align-items:center;gap:12px;flex:1;justify-content:center}.online-badge{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.online-dot{width:8px;height:8px;border-radius:50%;background:#4caf50;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.last-update{font-size:12px;color:var(--text-muted)}.mode-toggle{display:flex;gap:4px}.toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:6px;background:transparent;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s,color .15s}.toggle-btn img{width:16px;height:16px;opacity:.6}.toggle-btn:hover{background:var(--bg-hover)}.toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.toggle-btn.active img{opacity:1;filter:brightness(0) invert(1)}.track-toolbar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.track-toolbar select,.track-toolbar input[type=date]{height:36px;padding:0 8px;border:1px solid var(--border);border-radius:4px;font-size:14px;background:var(--surface);color:var(--text-primary)}.map-content{display:flex;flex:1;overflow:hidden}.map-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow:hidden}.sidebar-search{padding:8px;border-bottom:1px solid var(--border)}.sidebar-search input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px;box-sizing:border-box;background:var(--bg-secondary);color:var(--text-primary)}.sidebar-list{overflow-y:auto;flex:1}.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}.sidebar-item:hover{background:var(--bg-hover)}.sidebar-item.selected{background:var(--primary-light);border-left:3px solid var(--primary)}.status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-indicator.online{background:#4caf50}.status-indicator.offline{background:#9e9e9e}.sidebar-item-info{flex:1;min-width:0}.sidebar-item-title{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:4px}.sidebar-item-subtitle{display:flex;justify-content:space-between;align-items:center;font-size:12px}.sidebar-item-type{color:var(--text-secondary)}.sidebar-item-icons{display:flex;gap:4px;align-items:center}.sidebar-item-icons .status-icon{width:20px;height:20px}.map-container{flex:1;position:relative;overflow:hidden}.map-loading,.map-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-secondary);gap:12px;color:var(--text-secondary)}.map-error img{width:48px;height:48px;opacity:.5}.vehicle-photo-marker{width:56px;height:56px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.vehicle-photo-marker img{max-width:100%;max-height:100%;object-fit:contain}.vehicle-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 2px 6px #0000004d}.vehicle-dot img{width:20px;height:20px;filter:brightness(0) invert(1)}.vehicle-popup{min-width:200px}.popup-photo{width:100%;height:120px;object-fit:contain!important;border-radius:4px;margin-bottom:8px;background:var(--background);padding:4px}.popup-plate{font-size:16px;font-weight:700;margin-bottom:2px}.popup-model{font-size:13px;color:var(--text-secondary)}.popup-type{font-size:12px;color:var(--primary);margin-bottom:8px}.popup-metrics{font-size:12px;margin:8px 0;padding:8px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.popup-metrics>div{margin:3px 0;color:var(--text-primary)}.popup-telemetry{font-size:12px;display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.popup-time{color:var(--text-muted);margin-top:4px}.text-green{color:#4caf50}.text-red{color:#f44336}.org-left-panel{width:300px;min-width:280px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.panel-add-section{padding:16px;border-bottom:1px solid var(--border)}.btn-full{width:100%;justify-content:center;text-align:center}.panel-company-section{padding:16px;border-bottom:1px solid var(--border)}.panel-label{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.company-select-row{display:flex;gap:8px;align-items:center}.panel-company-select{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.company-delete-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.company-delete-btn:hover{background:#f443361a;border-color:#f44336}.panel-group{padding:12px 0;border-bottom:1px solid var(--border)}.panel-group-title{padding:8px 16px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.panel-structure-item{padding:10px 16px;font-size:14px;color:var(--text);display:flex;align-items:center;justify-content:space-between;transition:background .15s;position:relative}.panel-structure-item:hover{background:#00000008}.panel-structure-item.active{background:#3186a81a;color:var(--primary);font-weight:500}.structure-item-content{flex:1;display:flex;align-items:center;gap:10px;cursor:pointer}.structure-name{flex:1}.structure-actions{display:flex;gap:4px;align-items:center}.structure-edit-btn,.structure-delete-btn{background:none;border:none;cursor:pointer;padding:4px;opacity:0;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.panel-structure-item:hover .structure-edit-btn,.panel-structure-item:hover .structure-delete-btn{opacity:.6}.structure-edit-btn:hover,.structure-delete-btn:hover{opacity:1!important}.item-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.panel-structure-item.active .item-dot{background:var(--primary)}.panel-empty{padding:20px 16px;text-align:center;font-size:13px;color:var(--muted)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.functional-node{min-width:180px;max-width:220px;border-radius:10px;padding:12px 16px;box-shadow:0 2px 8px #00000026;position:relative;cursor:pointer;transition:box-shadow .15s}.functional-node:hover{box-shadow:0 4px 16px #00000038}.functional-node.selected{outline:2px solid var(--primary);outline-offset:2px}.functional-node.root-node{min-width:220px;font-size:15px;font-weight:700}.node-content{display:flex;flex-direction:column;gap:4px}.node-name{font-weight:600;font-size:13px;line-height:1.3;word-wrap:break-word}.node-root-badge{font-size:10px;opacity:.75;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.functional-node:hover .node-actions{display:flex}.staff-node{min-width:180px;max-width:220px;border-radius:10px;padding:12px 16px;box-shadow:0 2px 8px #00000026;position:relative;cursor:pointer;transition:box-shadow .15s}.staff-node:hover{box-shadow:0 4px 16px #00000038}.staff-node.selected{outline:2px solid var(--primary);outline-offset:2px}.staff-node.root-node{min-width:220px;font-size:15px;font-weight:700}.node-position{font-weight:600;font-size:13px;line-height:1.3;word-wrap:break-word}.node-employee{font-size:12px;margin-top:4px;font-weight:400}.node-vacancy{font-size:11px;margin-top:4px;opacity:.6;font-style:italic}.node-actions{display:none;position:absolute;top:-8px;right:4px;gap:2px;flex-direction:row}.staff-node:hover .node-actions{display:flex}.node-btn{width:14px;height:14px;border-radius:50%;border:none;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0003;transition:transform .15s}.node-btn:hover{transform:scale(1.2)}.node-btn-add{background:#4caf50;color:#fff;font-size:10px;font-weight:700;line-height:1}.node-btn-delete{background:#f44336;color:#fff;font-size:9px;line-height:1}.org-modal{max-width:500px}.choose-type-modal{max-width:700px}.choose-type-buttons{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px 0}.type-choice-btn{padding:30px 20px;border:2px solid var(--border);border-radius:12px;background:var(--background);cursor:pointer;transition:all .2s;text-align:center}.type-choice-btn:hover{border-color:var(--primary);background:#3186a80d;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.type-icon{width:48px;height:48px;margin-bottom:12px}.type-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:8px}.type-desc{font-size:13px;color:var(--muted)}.color-picker-row{display:flex;gap:10px;align-items:center}.color-input{width:60px;height:40px;border:1px solid var(--border);border-radius:6px;cursor:pointer}.color-text-input{flex:1;min-width:120px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:monospace}.input-disabled{background:var(--background);color:var(--muted);cursor:not-allowed}.form-error{padding:10px 12px;background:#f443361a;border-left:3px solid #f44336;border-radius:4px;color:#d32f2f;font-size:14px;margin-top:10px}.confirm-modal{max-width:440px}.confirm-message{font-size:15px;line-height:1.6;color:var(--text);margin:0}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover{background:#d32f2f}.org-canvas-wrapper{height:100%;display:flex;flex-direction:column;position:relative}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.canvas-title{font-weight:600;font-size:15px;color:var(--text)}.canvas-actions{display:flex;gap:8px}.btn-sm{padding:6px 12px;font-size:13px;text-align:center;justify-content:center}.btn-icon{width:14px;height:14px;margin-right:6px}.react-flow__node{cursor:grab}.react-flow__node:active{cursor:grabbing}.react-flow__minimap{background:#fff;border:1px solid var(--border);border-radius:6px}.react-flow__controls{background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 6px #0000001a}.react-flow__controls-button{border-bottom:1px solid var(--border)}.react-flow__controls-button:hover{background:var(--background)}.zoom-indicator{position:absolute;bottom:16px;left:80px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--text);box-shadow:0 2px 6px #0000001a;z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;min-width:60px;text-align:center}.org-page{height:100%;display:flex;flex-direction:column;overflow:hidden}.org-page.loading{display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--muted)}.org-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-secondary);padding:40px}.org-empty-state .empty-icon{width:48px;height:48px;opacity:.6}.org-empty-state p{font-size:15px;color:var(--muted)}.org-layout{display:flex;flex:1;overflow:hidden}.org-main{flex:1;position:relative;overflow:hidden}.org-no-structure{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:15px}.pwa-install-banner{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:9999;max-width:90%;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pwa-install-content{display:flex;align-items:center;gap:12px}.pwa-install-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary-light, rgba(74, 144, 217, .1));color:var(--primary, #4A90D9);border-radius:10px;flex-shrink:0}.pwa-install-text{display:flex;flex-direction:column;gap:2px}.pwa-install-text strong{font-size:14px;color:var(--text, #333)}.pwa-install-text span{font-size:12px;color:var(--muted, #666)}.pwa-install-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pwa-install-btn{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.pwa-install-btn--primary{background:var(--primary, #4A90D9);color:#fff}.pwa-install-btn--primary:hover:not(:disabled){background:var(--primary-dark, #3a7bc8)}.pwa-install-btn--primary:disabled{opacity:.7;cursor:not-allowed}.pwa-install-btn--secondary{background:transparent;color:var(--muted, #666)}.pwa-install-btn--secondary:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}@media (max-width: 576px){.pwa-install-banner{flex-direction:column;bottom:10px;left:10px;right:10px;transform:none;max-width:none}.pwa-install-actions{width:100%;justify-content:flex-end}}.chat-standalone{display:flex;flex-direction:column;height:100dvh;width:100vw;background:var(--background, #f5f5f5);overflow:hidden;overscroll-behavior:none;touch-action:pan-y;position:fixed;top:0;left:0}.chat-standalone-offline-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;font-size:13px;font-weight:500;flex-shrink:0;animation:slideDown .3s ease}.chat-standalone-offline-banner svg{flex-shrink:0}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.chat-standalone-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.chat-standalone-content .chat-core{height:100%}.chat-pwa-tabs{display:flex;flex-direction:row;background:var(--surface, #fff);border-top:1px solid var(--border, #e0e0e0);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0px)}.chat-pwa-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;border:none;background:transparent;cursor:pointer;color:var(--muted, #999);transition:color .2s;-webkit-tap-highlight-color:transparent}.chat-pwa-tab span{font-size:11px;font-weight:500;line-height:1}.chat-pwa-tab.active{color:var(--primary, #4A90D9)}.chat-pwa-tab.active svg{stroke:var(--primary, #4A90D9)}.chat-pwa-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted, #999)}.chat-pwa-placeholder-icon{font-size:48px;line-height:1}.chat-pwa-placeholder p{font-size:18px;font-weight:600;color:var(--text, #333);margin:0}.chat-pwa-placeholder span{font-size:14px;color:var(--text-secondary, #666)}.chat-page{display:flex;height:100vh;width:100vw;background:var(--background, #f5f5f5);overflow:hidden}.chat-page--window{flex-direction:column}.chat-page--window .chat-core{flex:1;height:100%;width:100%}.chat-page--window .chat-core--full{display:flex;flex-direction:row;height:100%}.chat-page--window .chat-core-sidebar{width:320px;min-width:280px;max-width:400px;flex-shrink:0;border-right:1px solid var(--border, #e0e0e0);background:var(--surface, #fff)}.chat-page--window .chat-core-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--surface, #fff)}@media (max-width: 600px){.chat-page--window .chat-core--full{flex-direction:column}.chat-page--window .chat-core-sidebar{width:100%;max-width:none;height:40%;border-right:none;border-bottom:1px solid var(--border, #e0e0e0)}.chat-page--window .chat-core-main{height:60%}}.app-card{display:flex;flex-direction:column;align-items:center;padding:24px 20px;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:12px;transition:all .2s ease}.app-card:hover{border-color:var(--primary, #4A90D9);box-shadow:0 4px 12px #00000014}.app-card--unavailable{opacity:.6}.app-card--unavailable:hover{border-color:var(--border, #e0e0e0);box-shadow:none}.app-card-icon{width:80px;height:80px;margin-bottom:16px;border-radius:16px;overflow:hidden;background:var(--background, #f5f5f5);display:flex;align-items:center;justify-content:center}.app-card-icon img{width:100%;height:100%;object-fit:cover}.app-card-body{text-align:center;margin-bottom:16px;flex:1}.app-card-name{font-size:16px;font-weight:600;color:var(--text, #333);margin-bottom:4px}.app-card-category{font-size:12px;color:var(--primary, #4A90D9);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.app-card-description{font-size:13px;color:var(--text-secondary, #666);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-height:54px}.app-card-btn{width:100%;padding:10px 16px;font-size:14px;font-weight:500;color:#fff;background:linear-gradient(135deg,var(--primary, #4A90D9) 0%,var(--primary-dark, #3a7bc8) 100%);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.app-card-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4a90d94d}.app-card-btn:active:not(:disabled){transform:translateY(0)}.app-card-btn:disabled{background:var(--muted, #999);cursor:not-allowed}.app-link-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.app-link-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .2s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.app-link-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.app-link-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.app-link-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.app-link-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.app-link-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.app-link-section{display:flex;flex-direction:column;gap:10px}.app-link-label{font-size:13px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.app-link-input-row{display:flex;gap:8px}.app-link-input{flex:1;padding:10px 12px;font-size:13px;font-family:monospace;color:var(--text, #333);background:var(--background, #f5f5f5);border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;cursor:text}.app-link-input:focus{border-color:var(--primary, #4A90D9)}.app-link-copy-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;color:var(--text, #333);background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:6px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.app-link-copy-btn:hover{background:var(--background, #f5f5f5);border-color:var(--primary, #4A90D9)}.app-link-copy-btn--copied{color:#43a047;border-color:#43a047;background:#43a04714}.app-link-copy-btn svg{flex-shrink:0}.app-link-qr{align-items:center;text-align:center}.app-link-qr-wrapper{display:flex;justify-content:center;padding:16px;background:#fff;border:1px solid var(--border, #e0e0e0);border-radius:12px}.app-link-qr-hint{font-size:12px;color:var(--muted, #999)}.app-link-howto{padding:16px;background:var(--background, #f5f5f5);border-radius:8px}.app-link-howto-item{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--text, #333);padding:6px 0}.app-link-howto-item:not(:last-child){border-bottom:1px solid var(--border, #e0e0e0)}.app-link-howto-browser{font-weight:600;color:var(--text, #333)}@media (max-width: 480px){.app-link-modal-overlay{padding:10px}.app-link-input-row{flex-direction:column}.app-link-copy-btn{justify-content:center}.app-link-qr-wrapper svg{max-width:160px;height:auto}}.apps-page-header{margin-bottom:32px}.apps-page-header h1{font-size:24px;font-weight:600;color:var(--text, #333);margin:0 0 8px}.apps-page-header p{font-size:14px;color:var(--text-secondary, #666);margin:0}.apps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}@media (max-width: 768px){.apps-page{padding:16px}.apps-page-header{margin-bottom:24px}.apps-page-header h1{font-size:20px}.apps-grid{grid-template-columns:1fr;gap:16px}}.schedule-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.schedule-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:scheduleModalSlideIn .2s ease}@keyframes scheduleModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.schedule-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.schedule-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.schedule-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.schedule-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.schedule-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.schedule-modal-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.schedule-form-group{display:flex;flex-direction:column;gap:6px}.schedule-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.schedule-form-group input[type=text],.schedule-form-group input[type=number],.schedule-form-group input[type=time],.schedule-form-group input[type=date],.schedule-form-group select{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s}.schedule-form-group input:focus,.schedule-form-group select:focus{border-color:var(--primary, #4A90D9)}.schedule-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.schedule-radio-group{display:flex;flex-direction:column;gap:8px}.schedule-radio{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text, #333);cursor:pointer}.schedule-radio input[type=radio]{width:16px;height:16px;cursor:pointer}.schedule-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border, #e0e0e0);margin-top:8px}@media (max-width: 480px){.schedule-modal-overlay{padding:10px}.schedule-form-row{grid-template-columns:1fr}}.assign-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.assign-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:assignModalSlideIn .2s ease}@keyframes assignModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.assign-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.assign-modal-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text, #333)}.assign-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.assign-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.assign-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.assign-modal-loading{text-align:center;padding:40px;color:var(--muted, #999)}.assign-form{display:flex;flex-direction:column;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border, #e0e0e0)}.assign-form-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.assign-form-group{display:flex;flex-direction:column;gap:6px}.assign-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.assign-form-group select,.assign-form-group input[type=date]{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s;background:var(--surface, #fff)}.assign-form-group select:focus,.assign-form-group input:focus{border-color:var(--primary, #4A90D9)}.assign-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.assign-radio-group{display:flex;gap:20px}.assign-radio{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text, #333);cursor:pointer}.assign-radio input{width:16px;height:16px;cursor:pointer}.assign-form-btn{align-self:flex-start}.assign-list h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.assign-list-items{display:flex;flex-direction:column;gap:8px}.assign-list-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--background, #f5f5f5);border-radius:6px}.assign-list-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assign-list-type{display:inline-block;padding:2px 8px;font-size:11px;font-weight:600;border-radius:4px}.assign-list-type--user{color:#1976d2;background:#1976d226}.assign-list-type--dept{color:#7b1fa2;background:#7b1fa226}.assign-list-name{font-size:14px;font-weight:500;color:var(--text, #333)}.assign-list-period{font-size:12px;color:var(--muted, #999)}.assign-list-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--muted, #999);cursor:pointer;border-radius:4px;transition:all .2s}.assign-list-delete:hover{background:#e539351a;color:#e53935}@media (max-width: 480px){.assign-form-row{grid-template-columns:1fr}.assign-radio-group{flex-direction:column;gap:8px}}.schedules-page{display:flex;flex-direction:column;gap:20px}.schedules-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.schedules-page-title{display:flex;align-items:center;gap:12px}.schedules-page-title h1{margin:0;font-size:24px;font-weight:600;color:var(--text, #333)}.schedules-page-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:600;color:var(--primary, #4A90D9);background:#4a90d91a;border-radius:14px}.schedules-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.schedules-search input{width:280px;padding:8px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s}.schedules-search input:focus{border-color:var(--primary, #4A90D9)}.schedules-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary, #666);cursor:pointer}.schedules-checkbox input{width:16px;height:16px;cursor:pointer}.schedules-table-wrapper{overflow-x:auto;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:8px}.schedules-table{width:100%;border-collapse:collapse}.schedules-table th,.schedules-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border, #e0e0e0)}.schedules-table th{font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;background:var(--background, #f5f5f5)}.schedules-table tbody tr:hover{background:#4a90d90a}.schedules-table tbody tr:last-child td{border-bottom:none}.schedules-row--inactive{opacity:.6}.schedules-name{display:flex;align-items:center;gap:8px;font-weight:500}.schedules-badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;border-radius:10px}.schedules-badge--inactive{color:#f57c00;background:#f57c001a}.schedules-type{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.schedules-type--daily{color:#1976d2;background:#1976d21a}.schedules-type--summarized{color:#7b1fa2;background:#7b1fa21a}.schedules-period{font-size:13px;color:var(--text-secondary, #666)}.schedules-assignments{text-align:center;font-weight:600;color:var(--primary, #4A90D9)}.schedules-actions{display:flex;align-items:center;gap:4px}.schedules-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.schedules-action-btn:hover{background:var(--background, #f5f5f5);color:var(--primary, #4A90D9)}.schedules-action-btn--danger:hover{background:#e539351a;color:#e53935}.schedules-loading,.schedules-empty{text-align:center;padding:40px 16px;color:var(--muted, #999)}.schedules-pagination{display:flex;align-items:center;justify-content:center;gap:16px}.schedules-pagination button{padding:8px 16px;font-size:14px;border:1px solid var(--border, #e0e0e0);background:var(--surface, #fff);border-radius:6px;cursor:pointer;transition:all .2s}.schedules-pagination button:hover:not(:disabled){border-color:var(--primary, #4A90D9);color:var(--primary, #4A90D9)}.schedules-pagination button:disabled{opacity:.5;cursor:not-allowed}.schedules-pagination span{font-size:14px;color:var(--text-secondary, #666)}@media (max-width: 768px){.schedules-page-header,.schedules-toolbar{flex-direction:column;align-items:flex-start}.schedules-search input{width:100%}}.absence-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.absence-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:absenceModalSlideIn .2s ease}@keyframes absenceModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.absence-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.absence-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.absence-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.absence-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.absence-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.absence-modal-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.absence-form-group{display:flex;flex-direction:column;gap:6px}.absence-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.absence-form-group input[type=text],.absence-form-group input[type=date],.absence-form-group select{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s;background:var(--surface, #fff)}.absence-form-group input:focus,.absence-form-group select:focus{border-color:var(--primary, #4A90D9)}.absence-form-group select:disabled{background:var(--background, #f5f5f5);cursor:not-allowed}.absence-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.absence-radio-group{display:flex;gap:20px;flex-wrap:wrap}.absence-radio{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text, #333);cursor:pointer}.absence-radio input[type=radio]{width:16px;height:16px;cursor:pointer}.absence-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border, #e0e0e0);margin-top:8px}@media (max-width: 480px){.absence-modal-overlay{padding:10px}.absence-form-row{grid-template-columns:1fr}.absence-radio-group{flex-direction:column;gap:8px}}.absences-page{display:flex;flex-direction:column;gap:20px}.absences-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.absences-page-title{display:flex;align-items:center;gap:12px}.absences-page-title h1{margin:0;font-size:24px;font-weight:600;color:var(--text, #333)}.absences-page-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:600;color:var(--primary, #4A90D9);background:#4a90d91a;border-radius:14px}.absences-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.absences-filter{padding:8px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;background:var(--surface, #fff);min-width:160px}.absences-filter:focus{border-color:var(--primary, #4A90D9)}.absences-table-wrapper{overflow-x:auto;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:8px}.absences-table{width:100%;border-collapse:collapse}.absences-table th,.absences-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border, #e0e0e0)}.absences-table th{font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;background:var(--background, #f5f5f5)}.absences-table tbody tr:hover{background:#4a90d90a}.absences-table tbody tr:last-child td{border-bottom:none}.absences-user{font-weight:500}.absences-note{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted, #999);font-size:13px}.absences-type{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.absences-type--vacation{color:#1565c0;background:#1565c01a}.absences-type--sick_leave{color:#c62828;background:#c628281a}.absences-type--business_trip{color:#6a1b9a;background:#6a1b9a1a}.absences-type--day_off{color:#2e7d32;background:#2e7d321a}.absences-type--unpaid_leave{color:#ef6c00;background:#ef6c001a}.absences-status{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.absences-status--approved{color:#2e7d32;background:#2e7d321a}.absences-status--pending{color:#f57c00;background:#f57c001a}.absences-status--rejected{color:#c62828;background:#c628281a}.absences-actions{display:flex;align-items:center;gap:4px}.absences-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;cursor:pointer;border-radius:6px;transition:all .2s}.absences-action-btn:hover{background:var(--background, #f5f5f5)}.absences-action-btn--danger:hover{background:#e539351a}.absences-loading,.absences-empty{text-align:center;padding:40px 16px;color:var(--muted, #999)}.absences-pagination{display:flex;align-items:center;justify-content:center;gap:16px}.absences-pagination button{padding:8px 16px;font-size:14px;border:1px solid var(--border, #e0e0e0);background:var(--surface, #fff);border-radius:6px;cursor:pointer;transition:all .2s}.absences-pagination button:hover:not(:disabled){border-color:var(--primary, #4A90D9);color:var(--primary, #4A90D9)}.absences-pagination button:disabled{opacity:.5;cursor:not-allowed}.absences-pagination span{font-size:14px;color:var(--text-secondary, #666)}@media (max-width: 768px){.absences-page-header{flex-direction:column;align-items:flex-start}.absences-toolbar{flex-direction:column;align-items:stretch}.absences-filter{width:100%}}.vacation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.vacation-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:vacationModalSlideIn .2s ease}@keyframes vacationModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.vacation-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.vacation-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.vacation-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.vacation-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.vacation-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.vacation-modal-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.vacation-form-group{display:flex;flex-direction:column;gap:6px}.vacation-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.vacation-form-group input[type=text],.vacation-form-group input[type=number],.vacation-form-group input[type=date],.vacation-form-group select{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s;background:var(--surface, #fff)}.vacation-form-group input:focus,.vacation-form-group select:focus{border-color:var(--primary, #4A90D9)}.vacation-form-group select:disabled{background:var(--background, #f5f5f5);cursor:not-allowed}.vacation-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.vacation-radio-group{display:flex;gap:20px;flex-wrap:wrap}.vacation-radio{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text, #333);cursor:pointer}.vacation-radio input[type=radio]{width:16px;height:16px;cursor:pointer}.vacation-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border, #e0e0e0);margin-top:8px}@media (max-width: 480px){.vacation-modal-overlay{padding:10px}.vacation-form-row{grid-template-columns:1fr}.vacation-radio-group{flex-direction:column;gap:8px}}.vacations-page{display:flex;flex-direction:column;gap:20px}.vacations-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.vacations-page-title{display:flex;align-items:center;gap:12px}.vacations-page-title h1{margin:0;font-size:24px;font-weight:600;color:var(--text, #333)}.vacations-page-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:600;color:var(--primary, #4A90D9);background:#4a90d91a;border-radius:14px}.vacations-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vacations-filter{padding:8px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;background:var(--surface, #fff);min-width:140px}.vacations-filter:focus{border-color:var(--primary, #4A90D9)}.vacations-table-wrapper{overflow-x:auto;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:8px}.vacations-table{width:100%;border-collapse:collapse}.vacations-table th,.vacations-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border, #e0e0e0)}.vacations-table th{font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;background:var(--background, #f5f5f5)}.vacations-table tbody tr:hover{background:#4a90d90a}.vacations-table tbody tr:last-child td{border-bottom:none}.vacations-user{font-weight:500}.vacations-days{text-align:center;font-weight:600;color:var(--primary, #4A90D9)}.vacations-note{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted, #999);font-size:13px}.vacations-type{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.vacations-type--main{color:#1565c0;background:#1565c01a}.vacations-type--additional{color:#6a1b9a;background:#6a1b9a1a}.vacations-type--study{color:#2e7d32;background:#2e7d321a}.vacations-status{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.vacations-status--approved{color:#2e7d32;background:#2e7d321a}.vacations-status--planned{color:#1565c0;background:#1565c01a}.vacations-status--cancelled{color:#c62828;background:#c628281a}.vacations-actions{display:flex;align-items:center;gap:4px}.vacations-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;cursor:pointer;border-radius:6px;transition:all .2s}.vacations-action-btn:hover{background:var(--background, #f5f5f5)}.vacations-action-btn--danger:hover{background:#e539351a}.vacations-loading,.vacations-empty{text-align:center;padding:40px 16px;color:var(--muted, #999)}.vacations-pagination{display:flex;align-items:center;justify-content:center;gap:16px}.vacations-pagination button{padding:8px 16px;font-size:14px;border:1px solid var(--border, #e0e0e0);background:var(--surface, #fff);border-radius:6px;cursor:pointer;transition:all .2s}.vacations-pagination button:hover:not(:disabled){border-color:var(--primary, #4A90D9);color:var(--primary, #4A90D9)}.vacations-pagination button:disabled{opacity:.5;cursor:not-allowed}.vacations-pagination span{font-size:14px;color:var(--text-secondary, #666)}@media (max-width: 768px){.vacations-page-header{flex-direction:column;align-items:flex-start}.vacations-toolbar{flex-direction:column;align-items:stretch}.vacations-filter{width:100%}}.edit-time-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.edit-time-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:420px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:editTimeModalSlideIn .2s ease}@keyframes editTimeModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.edit-time-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.edit-time-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.edit-time-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.edit-time-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.edit-time-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.edit-time-modal-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.edit-time-info{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--background, #f5f5f5);border-radius:8px}.edit-time-info strong{font-size:15px;color:var(--text, #333)}.edit-time-date{font-size:13px;color:var(--muted, #666)}.edit-time-form-group{display:flex;flex-direction:column;gap:6px}.edit-time-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.edit-time-form-group input{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s;background:var(--surface, #fff)}.edit-time-form-group input:focus{border-color:var(--primary, #4A90D9)}.edit-time-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border, #e0e0e0);margin-top:8px}@media (max-width: 480px){.edit-time-modal-overlay{padding:10px}}.attendance-page{display:flex;flex-direction:column;gap:20px;height:100%}.attendance-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.attendance-title h1{margin:0;font-size:24px;font-weight:600;color:var(--text, #333)}.attendance-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attendance-filter-input{padding:8px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;background:var(--surface, #fff)}.attendance-filter-input:focus{border-color:var(--primary, #4A90D9)}.filter-separator{color:var(--muted, #999)}.attendance-error{padding:12px 16px;background:#ffebee;color:#c62828;border-radius:8px;font-size:14px}.attendance-loading,.attendance-empty{text-align:center;padding:40px 16px;color:var(--muted, #999)}.attendance-table-wrapper{flex:1;overflow:auto;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:8px}.attendance-table{width:100%;border-collapse:collapse;min-width:800px}.attendance-table th,.attendance-table td{padding:8px 12px;text-align:center;border-bottom:1px solid var(--border, #e0e0e0);border-right:1px solid var(--border, #e0e0e0)}.attendance-table th:last-child,.attendance-table td:last-child{border-right:none}.attendance-table th{font-size:12px;font-weight:600;color:var(--text-secondary, #666);background:var(--background, #f5f5f5);position:sticky;top:0;z-index:10}.col-employee{width:220px;min-width:220px;text-align:left!important;position:sticky;left:0;background:var(--surface, #fff);z-index:5}.attendance-table th.col-employee{background:var(--background, #f5f5f5);z-index:15}.col-day{width:80px;min-width:80px}.col-day.weekend{background:#c628280d}.day-number{font-size:16px;font-weight:600;color:var(--text, #333)}.day-weekday{font-size:11px;text-transform:capitalize;color:var(--muted, #999)}.department-row{background:var(--background, #f5f5f5);cursor:pointer}.department-row:hover{background:var(--hover, #eeeeee)}.department-row td{text-align:left!important;font-weight:600;color:var(--text, #333);padding:12px 16px}.dept-toggle{display:inline-block;width:16px;margin-right:8px;font-size:10px;color:var(--muted, #999)}.dept-name{margin-right:8px}.dept-count{font-weight:400;color:var(--muted, #999);font-size:13px}.employee-row:hover,.employee-row:hover .col-employee{background:#4a90d90a}.employee-info{display:flex;align-items:center;gap:10px}.employee-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.employee-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--primary, #4A90D9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.employee-details{display:flex;flex-direction:column}.employee-name{font-size:14px;font-weight:500;color:var(--text, #333)}.employee-position{font-size:12px;color:var(--muted, #999)}.attendance-cell{font-size:13px;cursor:pointer;transition:background .2s;position:relative;vertical-align:middle}.attendance-cell:hover{background:#4a90d914}.attendance-cell--empty{color:var(--muted, #999);cursor:default}.attendance-cell--empty:hover{background:transparent}.attendance-cell--present{padding:4px 6px}.attendance-cell--present.manual{background:#ffc1071a}.attendance-times{display:flex;flex-direction:column;gap:2px}.time-in{color:#2e7d32;font-weight:500}.time-out{color:#c62828;font-weight:500}.attendance-violations{display:flex;justify-content:center;gap:4px;margin-top:2px}.violation{font-size:10px;padding:1px 4px;border-radius:3px;font-weight:500}.violation.late{background:#c628281a;color:#c62828}.violation.early{background:#f57c001a;color:#f57c00}.manual-icon,.auto-closed-icon,.review-icon{position:absolute;top:2px;right:2px;font-size:10px}.attendance-cell--absent{font-size:11px;font-weight:500}.attendance-cell--absence{font-size:11px;font-weight:500;border-radius:4px}@media (max-width: 768px){.attendance-header{flex-direction:column;align-items:flex-start}.attendance-filters{width:100%}.col-employee{width:150px;min-width:150px}.employee-avatar,.employee-avatar-placeholder{width:28px;height:28px;font-size:12px}.employee-name{font-size:13px}.employee-position{display:none}}.device-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.device-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:deviceModalSlideIn .2s ease}@keyframes deviceModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.device-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e0e0e0)}.device-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.device-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--muted, #666);cursor:pointer;border-radius:6px;transition:all .2s}.device-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.device-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.device-modal-error{padding:10px 14px;font-size:13px;color:#c62828;background:#ffebee;border-radius:6px}.device-form-group{display:flex;flex-direction:column;gap:6px}.device-form-group label{font-size:13px;font-weight:500;color:var(--text-secondary, #666)}.device-form-group input[type=text],.device-form-group input[type=number]{padding:10px 12px;font-size:14px;border:1px solid var(--border, #e0e0e0);border-radius:6px;outline:none;transition:border-color .2s;background:var(--surface, #fff)}.device-form-group input:focus{border-color:var(--primary, #4A90D9)}.device-form-hint{font-size:12px;color:var(--muted, #999)}.device-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.device-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text, #333);cursor:pointer}.device-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.device-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border, #e0e0e0);margin-top:8px}@media (max-width: 480px){.device-modal-overlay{padding:10px}.device-form-row{grid-template-columns:1fr}}.devices-page{display:flex;flex-direction:column;gap:20px}.devices-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.devices-title{display:flex;align-items:center;gap:12px}.devices-title h1{margin:0;font-size:24px;font-weight:600;color:var(--text, #333)}.devices-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:600;color:var(--primary, #4A90D9);background:#4a90d91a;border-radius:14px}.devices-error{padding:12px 16px;background:#ffebee;color:#c62828;border-radius:8px;font-size:14px}.devices-loading,.devices-empty{text-align:center;padding:40px 16px;color:var(--muted, #999)}.devices-table-wrapper{overflow-x:auto;background:var(--surface, #fff);border:1px solid var(--border, #e0e0e0);border-radius:8px}.devices-table{width:100%;border-collapse:collapse}.devices-table th,.devices-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border, #e0e0e0)}.devices-table th{font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px;background:var(--background, #f5f5f5)}.devices-table tbody tr:hover{background:#4a90d90a}.devices-table tbody tr.inactive{opacity:.6}.devices-table tbody tr:last-child td{border-bottom:none}.device-name{font-weight:500}.device-door{text-align:center;font-weight:600;color:var(--primary, #4A90D9)}.device-uuid{font-family:monospace;font-size:12px;color:var(--muted, #666)}.device-interval{text-align:center}.status-badge{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.status-active{color:#2e7d32;background:#2e7d321a}.status-warning{color:#f57c00;background:#f57c001a}.status-inactive{color:#9e9e9e;background:#9e9e9e1a}.device-last-seen{font-size:13px;color:var(--muted, #666)}.device-actions{display:flex;align-items:center;gap:4px}.devices-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;cursor:pointer;border-radius:6px;transition:all .2s}.devices-action-btn img{width:18px;height:18px;opacity:.7}.devices-action-btn:hover{background:var(--background, #f5f5f5)}.devices-action-btn:hover img{opacity:1}.devices-action-btn--danger:hover{background:#e539351a}.devices-action-btn--info{color:var(--primary, #4A90D9)}.devices-action-btn--info:hover{background:#4a90d91a}.devices-header-actions{display:flex;align-items:center;gap:10px}.devices-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.devices-modal{background:var(--surface, #fff);border-radius:12px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000002e}.devices-modal--help{max-width:620px}.devices-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border, #e0e0e0);flex-shrink:0}.devices-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text, #333)}.devices-modal-close{border:none;background:transparent;font-size:18px;cursor:pointer;color:var(--muted, #999);padding:4px 8px;border-radius:6px;line-height:1}.devices-modal-close:hover{background:var(--background, #f5f5f5);color:var(--text, #333)}.devices-modal-body{padding:20px 24px;overflow-y:auto;flex:1}.devices-modal-footer{padding:16px 24px;border-top:1px solid var(--border, #e0e0e0);display:flex;justify-content:flex-end;flex-shrink:0}.devices-modal-loading,.devices-modal-error{text-align:center;padding:24px;color:var(--muted, #999)}.devices-modal-error{color:#c62828}.devices-modal-hint{font-size:14px;color:var(--text-secondary, #555);margin:0 0 16px;line-height:1.5}.prov-fields{display:flex;flex-direction:column;gap:12px}.prov-field label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.prov-value{display:flex;align-items:center;gap:8px;background:var(--background, #f5f5f5);border:1px solid var(--border, #e0e0e0);border-radius:6px;padding:8px 12px}.prov-value code{flex:1;font-family:monospace;font-size:13px;color:var(--text, #333);word-break:break-all}.prov-kd{font-size:11px!important}.prov-copy{flex-shrink:0;border:1px solid var(--border, #e0e0e0);background:var(--surface, #fff);border-radius:5px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--primary, #4A90D9);transition:all .15s}.prov-copy:hover{background:var(--primary, #4A90D9);color:#fff;border-color:var(--primary, #4A90D9)}.prov-note{margin-top:16px;padding:12px 14px;background:#f57c0014;border-left:3px solid #f57c00;border-radius:4px;font-size:13px;color:var(--text, #333);line-height:1.5}.help-device-img{width:100%;max-height:180px;object-fit:contain;border-radius:8px;margin-bottom:20px;background:var(--background, #f5f5f5)}.help-steps{display:flex;flex-direction:column;gap:16px}.help-step{display:flex;gap:14px;align-items:flex-start}.help-step-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--primary, #4A90D9);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}.help-step-content strong{display:block;font-size:14px;font-weight:600;color:var(--text, #333);margin-bottom:4px}.help-step-content p{margin:0;font-size:13px;color:var(--text-secondary, #555);line-height:1.5}.help-step-content code{background:var(--background, #f0f0f0);padding:1px 5px;border-radius:3px;font-size:12px}@media (max-width: 768px){.devices-header{flex-direction:column;align-items:flex-start}.devices-modal{max-height:95vh}}.news-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .2s ease;border:1px solid #eee}.news-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.news-card--draft{border:1px dashed #ffa726;background:#fffaf0}.news-card-draft-badge{display:inline-block;padding:2px 8px;background:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;margin-bottom:8px}.news-card-body{display:flex;gap:16px;margin-bottom:16px}.news-card-text{flex:1;min-width:0}.news-card-image{flex-shrink:0;width:120px;height:90px;border-radius:8px;overflow:hidden;background:#f5f5f5}.news-card-image img{width:100%;height:100%;object-fit:cover}.news-card-title{margin:0 0 12px;font-size:18px;font-weight:600;color:#1976d2;line-height:1.4}.news-card-title:hover{text-decoration:underline}.news-card-content{margin:0;font-size:14px;color:#555;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.news-card-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:12px;border-top:1px solid #f0f0f0}.news-card-meta{display:flex;align-items:center;gap:16px;font-size:13px;color:#888}.news-card-date{color:#666}.news-card-author{color:#555;font-weight:500}.news-card-actions{display:flex;align-items:center;gap:8px}.action-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#f5f5f5;border:none;border-radius:20px;cursor:pointer;transition:all .2s ease;font-size:13px;color:#666}.action-btn:hover{background:#e8e8e8}.action-btn.active{background:#e3f2fd;color:#1976d2}.action-btn .action-icon{font-size:14px}.action-btn .action-count{font-weight:500;min-width:16px;text-align:center}.like-btn.active{background:#e8f5e9;color:#2e7d32}.dislike-btn.active{background:#ffebee;color:#c62828}@media (max-width: 480px){.news-card{padding:16px}.news-card-body{flex-direction:column-reverse}.news-card-image{width:100%;height:150px}.news-card-footer{flex-direction:column;align-items:flex-start}.news-card-actions{width:100%;justify-content:flex-end}}.news-date-group{margin-bottom:24px}.date-group-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.date-group-label{font-size:15px;font-weight:600;color:#666;white-space:nowrap;padding:4px 0}.date-group-line{flex:1;height:1px;background:linear-gradient(to right,#ddd,transparent)}.date-group-content{display:flex;flex-direction:column;gap:16px}.add-news-modal{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.add-news-modal--large{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1a1a2e}.modal-body{padding:24px;overflow-y:auto;flex:1}.form-group .required{color:#e53935}.form-group input,.form-group textarea{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.field-hint{margin-top:6px;font-size:12px;color:#888}.error-message{display:block;margin-top:6px;font-size:13px;color:#e53935}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #eee;background:#fafafa}.btn{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease}.btn-outline{background:#fff;color:#1976d2;border:1px solid #1976d2}.btn-outline:hover:not(:disabled){background:#e3f2fd}.news-editor-wrapper{flex:1;min-height:300px;border:1px solid #ddd;border-radius:8px;overflow:hidden}.news-editor-wrapper .editor-content{flex:1;min-height:250px;overflow-y:auto}@media (max-width: 480px){.add-news-modal{max-height:100vh;border-radius:0}.modal-header,.modal-body,.modal-footer{padding:16px}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.news-detail-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.news-modal-header{display:flex;justify-content:flex-end;padding:16px 20px 0}.modal-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;line-height:1;transition:color .2s}.modal-close:hover{color:#333}.modal-loading,.modal-error{padding:60px 20px;text-align:center;color:#666;font-size:16px}.news-modal-body{padding:0 24px 24px;overflow-y:auto;flex:1}.news-title{margin:0 0 16px;font-size:24px;font-weight:600;color:#1a1a2e;line-height:1.3}.news-meta{display:flex;gap:16px;margin-bottom:20px;font-size:14px;color:#666}.news-author{font-weight:500;color:#333}.news-content{font-size:15px;line-height:1.7;color:#333;white-space:pre-wrap;word-wrap:break-word;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #eee}.news-content--html{white-space:normal}.news-content--html h1,.news-content--html h2,.news-content--html h3{margin:1em 0 .5em;line-height:1.3}.news-content--html h1:first-child,.news-content--html h2:first-child,.news-content--html h3:first-child{margin-top:0}.news-content--html p{margin:0 0 1em}.news-content--html ul,.news-content--html ol{margin:0 0 1em;padding-left:1.5em}.news-content--html blockquote{margin:1em 0;padding:.5em 1em;border-left:3px solid #1976d2;background:#f5f5f5}.news-content--html code{background:#f0f0f0;padding:2px 6px;border-radius:4px;font-family:monospace}.news-content--html pre{background:#263238;color:#fff;padding:1em;border-radius:8px;overflow-x:auto}.news-content--html img{max-width:100%;max-height:400px;width:auto;height:auto;border-radius:8px;display:block;margin:16px 0;object-fit:contain}.news-content--html table{width:100%;border-collapse:collapse;margin:1em 0}.news-content--html th,.news-content--html td{border:1px solid #ddd;padding:8px 12px;text-align:left}.news-content--html th{background:#f5f5f5;font-weight:600}.news-content--html a{color:#1976d2}.news-draft-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff3e0;border:1px solid #ffcc80;border-radius:8px;margin-bottom:16px}.draft-badge{padding:4px 10px;background:#ff9800;color:#fff;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.draft-text{color:#e65100;font-size:14px}.news-footer{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #eee}.news-reactions{display:flex;gap:12px}.reaction-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f5f5f5;border:none;border-radius:20px;cursor:pointer;font-size:14px;color:#666;transition:all .2s ease}.reaction-btn:hover{background:#e8e8e8}.reaction-btn.active.like{background:#e8f5e9;color:#2e7d32}.reaction-btn.active.dislike{background:#ffebee;color:#c62828}.news-actions{display:flex;gap:8px}.comments-section{margin-top:24px}.comments-header{margin-bottom:16px}.comments-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.comment-form{margin-bottom:20px}.comment-form textarea{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px;margin-bottom:10px;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.comment-form textarea:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.comment-form .btn{float:right}.comments-list{clear:both}.comment-item{padding:16px;background:#f9f9f9;border-radius:8px;margin-bottom:12px}.comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.comment-author{display:flex;flex-direction:column;gap:2px}.comment-author .author-name{font-weight:500;color:#333;font-size:14px}.comment-author .comment-date{font-size:12px;color:#888}.comment-text{font-size:14px;line-height:1.6;color:#444;white-space:pre-wrap}.btn-delete-comment{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;line-height:1;transition:color .2s}.btn-delete-comment:hover{color:#e53935}.no-comments{text-align:center;padding:30px 20px;color:#888;font-size:14px}.edit-form{padding-top:10px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-group input,.form-group textarea{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.form-group textarea{resize:vertical;min-height:150px;font-family:inherit}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.delete-confirm-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:12px}.delete-confirm-dialog{background:#fff;padding:24px;border-radius:12px;max-width:400px;text-align:center;box-shadow:0 10px 40px #0003}.delete-confirm-dialog h4{margin:0 0 12px;font-size:18px;color:#333}.delete-confirm-dialog p{margin:0 0 20px;color:#666;font-size:14px}.delete-confirm-actions{display:flex;justify-content:center;gap:12px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:6px 14px;font-size:13px}.btn-primary:hover:not(:disabled){background:#1565c0}.btn-danger{background:#e53935;color:#fff}.btn-danger:hover:not(:disabled){background:#c62828}.btn-success{background:#43a047;color:#fff}.form-group--editor{flex:1;display:flex;flex-direction:column}.news-editor-wrapper{flex:1;min-height:250px;border:1px solid #ddd;border-radius:8px;overflow:hidden}.news-editor-wrapper .article-editor{height:100%;display:flex;flex-direction:column}.news-editor-wrapper .editor-content{flex:1;min-height:200px;overflow-y:auto}@media (max-width: 480px){.news-detail-modal{max-height:100vh;border-radius:0}.news-modal-body{padding:0 16px 16px}.news-title{font-size:20px}.news-footer{flex-direction:column;gap:16px;align-items:flex-start}.news-actions{width:100%;justify-content:flex-end}}.news-page{padding:24px;max-width:900px;margin:0 auto}.news-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.news-header h1{margin:0;font-size:28px;font-weight:600;color:#1a1a2e}.news-tabs{display:flex;gap:4px;margin-bottom:24px;background:#f5f5f5;padding:4px;border-radius:10px;width:fit-content}.news-tab{padding:10px 20px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .2s ease}.news-tab:hover{color:#333}.news-tab.active{background:#fff;color:#1976d2;box-shadow:0 2px 4px #0000001a}.news-content{display:flex;flex-direction:column;gap:24px}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state .empty-icon{font-size:64px;margin-bottom:16px}.empty-state h3{margin:0 0 8px;font-size:20px;color:#333}.empty-state p{margin:0;color:#666}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px 0;margin-top:20px}.pagination .page-info{color:#666;font-size:14px}.btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease}.btn-primary{background:#1976d2;color:#fff}.btn-primary:hover{background:#1565c0}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover:not(:disabled){background:#e8e8e8}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.news-page{padding:16px}.news-header{flex-direction:column;gap:16px;align-items:flex-start}.news-header h1{font-size:24px}}:root{--sidebar-bg: rgb(32 117 19 / 55%);--sidebar-bg-2: #197ab9;--topbar-bg: #1a7bb8;--panel-bg: #ffffff;--text: #0f172a;--muted: #64748b;--pill: #fde2e8;--badge: #ef4444;--badgeText: #fff;--radius-lg: 16px;--radius-md: 12px;--shadow: 0 8px 24px rgba(15, 23, 42, .08);--primary: #1976d2;--primary-dark: #1565c0;--secondary: #424242;--background: #f0f4f8;--surface: #ffffff;--text-primary: #212121;--text-secondary: #757575;--border: #e0e0e0;--success: #4caf50;--warning: #ff9800;--error: #f44336}body.dark{--sidebar-bg: rgba(0,0,0,.55);--sidebar-bg-2: #111827;--topbar-bg: #0f172a;--panel-bg: #1a1a2e;--text: #f5f5f5;--muted: #a1a1aa;--pill: #44475a;--badge: #ef4444;--badgeText: #fff;--background: #0f172a;--surface: #1e293b;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--border: #334155}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:var(--background);transition:background .3s ease,color .3s ease}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text)}button,input,textarea,select{font-family:inherit}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:18px;color:var(--muted)}.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--background);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background:#d32f2f}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#388e3c}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid currentColor;border-radius:50%;border-top-color:transparent;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-icon{padding:6px 8px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--background)}.btn-icon.btn-delete:hover,.btn-icon.btn-danger:hover{background:#f443361a}.action-icon{width:18px;height:18px;object-fit:contain}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--text)}.form-group .required{color:var(--error);margin-left:2px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);box-sizing:border-box;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--error)}.form-group textarea{resize:vertical;min-height:80px}.form-error{display:block;margin-top:4px;font-size:12px;color:var(--error)}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-row .form-group{flex:1;margin-bottom:0}.form-row .form-group.flex-2{flex:2}.input-with-button{display:flex;gap:8px}.input-with-button input{flex:1}.data-grid-container{background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.data-grid{width:100%;border-collapse:collapse}.data-grid th,.data-grid td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.data-grid th{background:var(--background);font-weight:600;color:var(--text);font-size:13px;text-transform:uppercase;letter-spacing:.3px;position:sticky;top:0;z-index:1}.data-grid tbody tr{cursor:pointer;transition:background .15s}.data-grid tbody tr:hover{background:#00000005}.data-grid tbody tr.selected{background:#1976d214}.data-grid tbody tr.row-warning{background:#ff980014}.data-grid tbody tr.row-warning:hover{background:#ff98001f}.data-grid tbody tr.row-expired{background:#f4433614}.data-grid tbody tr.row-expired:hover{background:#f443361f}.data-grid tbody tr.row-new{background:#1976d214}.col-checkbox{width:40px;text-align:center!important}.col-photo{width:60px}.col-actions{width:140px;text-align:center!important;white-space:nowrap}.table-actions-cell{display:flex;gap:4px;align-items:center;justify-content:center}.table-photo{width:40px;height:40px;object-fit:cover;border-radius:6px}.table-photo-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--background);border-radius:6px}.table-photo-placeholder img{width:24px;height:24px;opacity:.5}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--background);border-top:1px solid var(--border);font-size:14px;color:var(--muted)}.pagination{display:flex;align-items:center;gap:8px}.pagination button{width:32px;height:32px;border:1px solid var(--border);background:var(--surface);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination button:hover:not(:disabled){background:var(--background)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a}.toolbar-left{display:flex;gap:12px;align-items:center}.toolbar-right{display:flex;gap:16px;align-items:center}.filters{margin-bottom:16px;padding:16px;background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.filter-group{flex:1;min-width:150px}.filter-group.search-group{flex:2;min-width:250px}.filter-group input,.filter-group select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);box-sizing:border-box}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:var(--primary)}.btn-reset{padding:10px 16px;border:1px solid var(--border);background:var(--surface);border-radius:6px;font-size:14px;color:var(--muted);cursor:pointer;transition:all .2s}.btn-reset:hover{background:var(--background)}.search-field{position:relative}.search-field .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:.5}.search-field input{padding-left:36px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface);border-radius:12px;width:100%;max-width:640px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-content.modal-wide{max-width:800px}.modal-content.modal-narrow{max-width:480px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text)}.modal-close{width:32px;height:32px;border:none;background:none;font-size:24px;color:var(--muted);cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:var(--background);color:var(--text)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border);background:var(--background)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.badge-new{background:#1976d21f;color:#1976d2}.badge-progress{background:#ff98001f;color:#f57c00}.badge-done,.badge-success{background:#4caf501f;color:#388e3c}.badge-rejected,.badge-error{background:#f443361f;color:#d32f2f}.badge-pending{background:#9e9e9e1f;color:#616161}.badge-warning{background:#ff98001f;color:#f57c00}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;background:var(--badge);color:#fff}.status-item{display:flex;align-items:center;gap:6px;font-size:14px}.status-icon{width:16px;height:16px}.status-icon img{width:100%;height:100%;object-fit:contain}.notification{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:6px;margin-bottom:12px}.notification:last-child{margin-bottom:0}.notification-success{background:#4caf501a;border-left:4px solid var(--success);color:#2e7d32}.notification-warning{background:#ff98001a;border-left:4px solid var(--warning);color:#e65100}.notification-error{background:#f443361a;border-left:4px solid var(--error);color:#c62828}.notification-info{background:#2196f31a;border-left:4px solid #2196f3;color:#1565c0}.state-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--surface);border-radius:8px;text-align:center}.state-icon{width:48px;height:48px;margin-bottom:16px;opacity:.5}.state-icon img{width:100%;height:100%;object-fit:contain}.state-text{font-size:16px;color:var(--muted);margin-bottom:16px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.page-header{margin-bottom:20px}.page-header h1{margin:0;font-size:24px;font-weight:600;color:var(--text)}.page-subtitle{margin:8px 0 0;font-size:14px;color:var(--muted)}body.dark .data-grid tbody tr:hover{background:#ffffff05}body.dark .btn-secondary{background:var(--surface);border-color:var(--border)}body.dark .btn-secondary:hover:not(:disabled){background:var(--background)}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
