@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";.conversation-list{background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;height:100%;display:flex}.conversation-list-header{border-bottom:1px solid #e5e7eb;padding:1.5rem}.conversation-list-header h2{color:#111827;margin:0;font-size:1.5rem;font-weight:600}.conversation-search{border-bottom:1px solid #e5e7eb;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.conversation-search input{border:1px solid #d1d5db;border-radius:.5rem;outline:none;flex:1;padding:.5rem .75rem;font-size:.875rem;transition:border-color .2s}.conversation-search input:focus{border-color:#3b82f6}.conversations{flex:1;overflow-y:auto}.no-conversations{text-align:center;color:#6b7280;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}.no-conversations p{margin:.25rem 0}.no-conversations .text-muted{color:#9ca3af;font-size:.875rem}.conversation-item{cursor:pointer;border-bottom:1px solid #f3f4f6;gap:1rem;padding:1rem 1.5rem;transition:background-color .15s;display:flex}.conversation-item:hover{background-color:#f9fafb}.conversation-item.active{background-color:#eff6ff;border-left:3px solid #3b82f6}.conversation-avatar-wrapper{flex-shrink:0;position:relative}.conversation-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:600;display:flex}.presence-indicator{border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;bottom:2px;right:2px;box-shadow:0 0 0 1px #0000001a}.presence-indicator.online{background-color:#10b981}.presence-indicator.offline{background-color:#9ca3af}.conversation-content{flex:1;min-width:0}.conversation-header{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.conversation-name{color:#111827;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.conversation-time{color:#6b7280;flex-shrink:0;margin-left:.5rem;font-size:.75rem}.conversation-preview{justify-content:space-between;align-items:center;display:flex}.last-message{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:.875rem;overflow:hidden}.unread-badge{color:#fff;background-color:#3b82f6;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:.5rem;padding:0 6px;font-size:.75rem;font-weight:600;display:inline-flex}.message-input{background:#fff;border-top:1px solid #e5e7eb;flex-direction:column;gap:.5rem;padding:1rem 1.5rem;display:flex}.replying-to-preview{background-color:#eff6ff;border-left:3px solid #3b82f6;border-radius:.5rem;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.reply-info{flex:1;min-width:0}.reply-header{color:#3b82f6;margin-bottom:.25rem;font-size:.8125rem;font-weight:600}.reply-content{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.remove-reply-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:all .15s;display:flex}.remove-reply-button:hover{color:#3b82f6;background-color:#dbeafe}.selected-file-preview{background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:.5rem;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.file-info{color:#374151;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:500;overflow:hidden}.file-size{color:#6b7280;font-size:.8125rem}.remove-file-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:all .15s;display:flex}.remove-file-button:hover{color:#ef4444;background-color:#e5e7eb}.input-row{align-items:flex-end;gap:.75rem;display:flex}.message-textarea{resize:none;border:1px solid #d1d5db;border-radius:1.25rem;outline:none;flex:1;min-height:40px;max-height:120px;padding:.625rem 1rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s}.message-textarea:focus{border-color:#3b82f6}.input-action-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .15s;display:flex}.input-action-button:hover{color:#111827;background-color:#f3f4f6}.send-button{cursor:pointer;color:#fff;background-color:#3b82f6;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.625rem;transition:all .15s;display:flex}.send-button:hover:not(:disabled){background-color:#2563eb}.send-button:disabled{cursor:not-allowed;background-color:#d1d5db}.chat-window{background:#fff;flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-header{z-index:10;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.chat-header-info h3{color:#111827;margin:0;font-size:1.125rem;font-weight:600}.chat-header-info p{color:#6b7280;align-items:center;gap:.375rem;margin:.25rem 0 0;font-size:.875rem;display:flex}.chat-status.offline:before,.chat-status.online:before{content:"";border-radius:50%;width:8px;height:8px;display:inline-block}.chat-status.offline:before{background-color:#9ca3af;box-shadow:0 0 0 2px #9ca3af33}.chat-status.online:before{background-color:#10b981;box-shadow:0 0 0 2px #10b98133}.chat-header-actions{gap:.5rem;display:flex}.icon-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.375rem;padding:.5rem;transition:all .15s}.icon-button:hover{color:#111827;background-color:#f3f4f6}.messages-container{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1.5rem;display:flex;overflow:hidden auto}.no-conversation{color:#6b7280;text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.no-conversation h3{color:#111827;margin:.5rem 0;font-size:1.25rem}.no-conversation p{margin:0;font-size:.875rem}.message-group{gap:.75rem;display:flex}.message-group.sent{flex-direction:row-reverse}.message-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:600;display:flex}.message-content{flex-direction:column;gap:.25rem;max-width:60%;display:flex}.message-group.sent .message-content{align-items:flex-end}.message-sender{color:#6b7280;margin:0;font-size:.75rem;font-weight:600}.message-bubble{word-wrap:break-word;border-radius:1rem;padding:.75rem 1rem;position:relative}.message-group.received .message-bubble{color:#111827;background-color:#f3f4f6;border-bottom-left-radius:.25rem}.message-group.sent .message-bubble{color:#fff;background-color:#3b82f6;border-bottom-right-radius:.25rem}.message-group.sent .message-bubble .message-text{color:#fff}.message-text{margin:0;font-size:.9375rem;line-height:1.5}.reply-preview-in-message{cursor:pointer;background-color:#0000000d;border-radius:.375rem;gap:.5rem;margin-bottom:.5rem;padding:.5rem;transition:background-color .15s;display:flex}.message-group.sent .reply-preview-in-message{background-color:#ffffff26}.reply-preview-in-message:hover{background-color:#00000014}.message-group.sent .reply-preview-in-message:hover{background-color:#ffffff40}.reply-preview-bar{background-color:#10b981;border-radius:2px;flex-shrink:0;width:3px}.message-group.sent .reply-preview-bar{background-color:#fff}.reply-preview-content{flex:1;min-width:0}.reply-preview-sender{color:#10b981;margin-bottom:.125rem;font-size:.8125rem;font-weight:600}.message-group.sent .reply-preview-sender{color:#fff}.reply-preview-text{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.message-group.sent .reply-preview-text{color:#fffc}.message-meta{color:#9ca3af;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.message-group.sent .message-meta{justify-content:flex-end}.typing-indicator{gap:.75rem;margin-bottom:1rem;padding:0 1.5rem;display:flex}.typing-indicator-dots{background-color:#f3f4f6;border-radius:1rem 1rem 1rem .25rem;gap:.25rem;padding:.75rem 1rem;display:flex}.typing-dot{background-color:#9ca3af;border-radius:50%;width:8px;height:8px;animation:1.4s infinite typing}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.message-attachment{margin-top:.5rem}.message-image{cursor:pointer;border-radius:.5rem;max-width:300px}.message-file{cursor:pointer;background-color:#0000000d;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem;transition:background-color .15s;display:flex}.message-file:hover{background-color:#0000001a}.lightbox-overlay{z-index:1000;cursor:zoom-out;background-color:#000000e6;justify-content:center;align-items:center;padding:60px 20px 20px;display:flex;position:fixed;inset:0}.lightbox-content{cursor:default;max-width:90vw;max-height:calc(90vh - 60px);position:relative}.lightbox-header{justify-content:flex-end;align-items:center;gap:.5rem;display:flex;position:absolute;top:-55px;left:0;right:0}.lightbox-download,.lightbox-close{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.lightbox-download:hover,.lightbox-close:hover{background:#fff3;transform:scale(1.05)}.lightbox-image{object-fit:contain;border-radius:.5rem;max-width:90vw;max-height:calc(90vh - 60px)}.message-context-menu{z-index:1000;background:#fff;border-radius:.75rem;min-width:180px;padding:.5rem;animation:.15s ease-out contextMenuFadeIn;box-shadow:0 10px 40px #00000026,0 0 0 1px #0000000d}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)translateY(-5px)}to{opacity:1;transform:scale(1)translateY(0)}}.context-menu-item{cursor:pointer;color:#374151;border-radius:.5rem;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.9375rem;transition:background-color .15s;display:flex}.context-menu-item:hover{background-color:#f3f4f6}.context-menu-item svg{color:#6b7280;flex-shrink:0}.emoji-picker{z-index:1000;background:#fff;border-radius:.75rem;min-width:280px;padding:.75rem;animation:.15s ease-out contextMenuFadeIn;box-shadow:0 10px 40px #00000026,0 0 0 1px #0000000d}.emoji-picker-header{color:#374151;margin-bottom:.75rem;padding:0 .25rem;font-size:.875rem;font-weight:600}.emoji-list{grid-template-columns:repeat(5,1fr);gap:.5rem;display:grid}.emoji-button{cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem;font-size:1.5rem;transition:all .15s;display:flex}.emoji-button:hover{background-color:#f3f4f6;transform:scale(1.2)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.forward-modal-whatsapp{color:#111827;background:#fff;border-radius:.5rem;flex-direction:column;width:90%;max-width:450px;max-height:85vh;animation:.2s ease-out slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.forward-modal-header{border-bottom:1px solid #e5e7eb;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.modal-close-icon{cursor:pointer;color:#6b7280;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:flex}.modal-close-icon:hover{color:#111827}.forward-modal-header h3{color:#111827;flex:1;margin:0;font-size:1.125rem;font-weight:500}.forward-search-bar{background:#fff;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem}.forward-search-input{color:#111827;background:#f3f4f6;border:none;border-radius:.5rem;outline:none;width:100%;padding:.625rem 1rem;font-size:.9375rem}.forward-search-input::placeholder{color:#9ca3af}.forward-chats-label{color:#10b981;background:#fff;border-bottom:1px solid #e5e7eb;padding:.75rem 1.5rem;font-size:.8125rem;font-weight:500}.conversation-list-forward{background:#fff;flex:1;overflow-y:auto}.forward-conversation-item{cursor:pointer;border-bottom:1px solid #f3f4f6;align-items:center;gap:1rem;padding:.75rem 1.5rem;transition:background-color .15s;display:flex}.forward-conversation-item.selected{background-color:#eff6ff}.forward-checkbox{border:2px solid #d1d5db;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.forward-checkbox.checked{background-color:#3b82f6;border-color:#3b82f6}.forward-checkbox span{color:#fff;font-size:.875rem;font-weight:700}.conversation-avatar-forward{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.125rem;font-weight:600;display:flex}.conversation-info-forward{flex:1;min-width:0}.conversation-name-forward{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:400;overflow:hidden}.forward-selected-contacts{background:#f9fafb;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;align-items:center;gap:.75rem;max-height:100px;padding:.75rem 1rem;display:flex;overflow-x:auto}.selected-contact-chip{color:#fff;white-space:nowrap;background:#3b82f6;border-radius:1rem;flex-shrink:0;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.selected-contact-chip button{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex}.selected-contact-chip button:hover{opacity:.8}.forward-send-button-container{background:#fff;border-top:1px solid #e5e7eb;justify-content:flex-end;padding:1rem 1.5rem;display:flex}.forward-send-button{color:#fff;cursor:pointer;background-color:#3b82f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .2s;display:flex;box-shadow:0 4px 12px #3b82f666}.forward-send-button:hover{background-color:#2563eb;transform:scale(1.05)}.forward-send-button:active{transform:scale(.95)}.modal-overlay{z-index:1001;background-color:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.forward-modal{background:#fff;border-radius:1rem;flex-direction:column;width:90%;max-width:500px;max-height:80vh;animation:.2s ease-out slideUp;display:flex}.modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{color:#111827;margin:0;font-size:1.25rem;font-weight:600}.modal-close{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem;transition:all .15s;display:flex}.modal-close:hover{color:#111827;background-color:#f3f4f6}.forward-message-preview{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;max-height:100px;padding:1rem 1.5rem;overflow-y:auto}.forward-message-preview p{color:#6b7280;margin:0;font-size:.875rem;font-style:italic}.conversation-list-forward{flex:1;padding:.5rem;overflow-y:auto}.forward-conversation-item{cursor:pointer;border-radius:.5rem;align-items:center;gap:1rem;padding:.75rem 1rem;transition:background-color .15s;display:flex}.forward-conversation-item:hover{background-color:#f3f4f6}.conversation-avatar-small{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:600;display:flex}.conversation-info{flex:1;min-width:0}.conversation-name-small{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:500;overflow:hidden}.message-bubble{padding-bottom:1.5rem;position:relative}.message-reactions-inline{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;max-width:80%;display:flex;position:absolute;bottom:2px;right:4px}.reaction-badge{cursor:pointer;background:#fffffff2;border:1px solid #0000001a;border-radius:10px;align-items:center;gap:.125rem;padding:.125rem .375rem;font-size:.75rem;transition:all .2s;display:inline-flex;box-shadow:0 1px 2px #0000001a}.reaction-badge:hover{background:#fff;transform:scale(1.1);box-shadow:0 2px 4px #00000026}.reaction-badge.user-reacted{color:#1e40af;background:#dbeafef2;border-color:#3b82f6}.reaction-badge.user-reacted:hover{background:#bfdbfe;border-color:#2563eb}.message-group.sent .message-reactions-inline{justify-content:flex-start;left:4px;right:auto}.reaction-modal{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:400px;max-height:500px;display:flex;overflow:hidden;box-shadow:0 4px 20px #00000026}.reaction-modal-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;align-items:center;gap:.5rem;padding:1rem;display:flex}.reaction-modal-emoji{font-size:1.5rem}.reaction-count{color:#6b7280;flex:1;font-size:.875rem;font-weight:500}.modal-close-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.25rem;transition:background .2s;display:flex}.modal-close-button:hover{background:#e5e7eb}.reaction-list{flex:1;overflow-y:auto}.reaction-item{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .2s;display:flex}.reaction-item:hover{background:#f9fafb}.reaction-item:last-child{border-bottom:none}.reaction-user-info{flex:1;align-items:center;gap:.75rem;display:flex}.reaction-user-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:600;display:flex}.reaction-user-details{flex:1;min-width:0}.reaction-user-name{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:500;overflow:hidden}.reaction-user-action{color:#ef4444;cursor:pointer;margin-top:.125rem;font-size:.8125rem;transition:color .2s}.reaction-user-action:hover{color:#dc2626;text-decoration:underline}.reaction-emoji-display{flex-shrink:0;font-size:1.25rem}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.message-link{color:#3b82f6;word-break:break-all;text-decoration:underline;transition:color .2s}.message-link:hover{color:#2563eb}.message-group.sent .message-link{color:#fff;font-weight:500;text-decoration:underline}.message-group.sent .message-link:hover{color:#e0f2fe}.pinned-banner{cursor:pointer;background:#f0f4ff;border-bottom:1px solid #dbeafe;flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem 1rem;transition:background .15s;display:flex}.pinned-banner:hover{background:#e0eaff}.pinned-banner-icon{color:#3b82f6;flex-shrink:0;align-items:center;display:flex}.pinned-banner-content{flex-direction:column;flex:1;min-width:0;display:flex}.pinned-banner-label{color:#3b82f6;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.1rem;font-size:.7rem;font-weight:600;line-height:1}.pinned-banner-text{color:#374151;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.pinned-dots{flex-direction:column;flex-shrink:0;align-items:center;gap:3px;padding:0 .25rem;display:flex}.pinned-dot{cursor:pointer;background:#93c5fd;border:none;border-radius:50%;width:4px;height:4px;padding:0;transition:background .2s,transform .2s}.pinned-dot.active{background:#3b82f6;transform:scale(1.3)}.pinned-dot:hover{background:#60a5fa}@keyframes highlightFlash{0%{background:#3b82f640;border-radius:10px}60%{background:#3b82f626;border-radius:10px}to{background:0 0}}.message-highlight-flash{animation:2s ease-out forwards highlightFlash}.context-menu-item.delete-item{color:#ef4444}.context-menu-item.delete-item:hover{background-color:#fef2f2}.header-dropdown-menu{z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;min-width:150px;margin-top:.5rem;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.header-dropdown-menu .dropdown-item{color:#374151;cursor:pointer;padding:.75rem 1rem;font-size:.875rem;transition:background-color .2s}.header-dropdown-menu .dropdown-item:hover{background-color:#f3f4f6}.details-modal{background:#fff;border-radius:.75rem;flex-direction:column;width:90%;max-width:400px;max-height:85vh;animation:.2s ease-out scaleIn;display:flex;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.details-modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.details-modal-header h3{color:#111827;margin:0;font-size:1.125rem;font-weight:600}.details-modal-content{flex-direction:column;align-items:center;padding:1.5rem;display:flex;overflow-y:auto}.details-avatar.large{color:#4f46e5;background:#e0e7ff;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:1rem;font-size:2.5rem;font-weight:600;display:flex}.details-avatar.large.group{color:#6b7280;background:#f3f4f6}.details-name{color:#111827;text-align:center;margin:0 0 1.5rem;font-size:1.25rem;font-weight:600}.direct-details{flex-direction:column;align-items:center;width:100%;display:flex}.details-info-row{border-bottom:1px solid #f3f4f6;justify-content:space-between;width:100%;padding:.75rem 0;display:flex}.details-info-row:last-child{border-bottom:none}.details-label{color:#6b7280;font-size:.875rem;font-weight:500}.details-value{color:#111827;font-size:.875rem;font-weight:500}.group-details{flex-direction:column;align-items:center;width:100%;display:flex}.details-description-box{text-align:left;background:#f9fafb;border-radius:.5rem;width:100%;margin-bottom:1.5rem;padding:1rem}.details-description-box .details-label{color:#4b5563;margin-bottom:.5rem}.details-description{color:#111827;font-size:.875rem;line-height:1.5}.details-participants-section{text-align:left;width:100%}.details-participants-section .details-label{margin-bottom:.75rem}.details-participants-list{flex-direction:column;gap:.5rem;display:flex}.details-participant-item{border-radius:.5rem;align-items:center;gap:.75rem;padding:.5rem;transition:background-color .2s;display:flex}.details-participant-item:hover{background-color:#f9fafb}.participant-avatar.small{color:#4f46e5;background:#e0e7ff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:500;display:flex}.participant-info{flex-direction:column;display:flex}.participant-name{color:#111827;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.participant-role{color:#6b7280;font-size:.75rem}.admin-badge{color:#2563eb;background:#dbeafe;border-radius:.25rem;padding:.125rem .375rem;font-size:.625rem;font-weight:600}.user-search-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.user-search-modal{background:#fff;border-radius:.75rem;flex-direction:column;width:90%;max-width:500px;max-height:80vh;display:flex;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.user-search-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.user-search-header h3{color:#111827;margin:0;font-size:1.25rem;font-weight:600}.close-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:.375rem;padding:.5rem;transition:all .15s}.close-button:hover{color:#111827;background-color:#f3f4f6}.user-search-input-wrapper{border-bottom:1px solid #e5e7eb;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.user-search-input{border:1px solid #d1d5db;border-radius:.5rem;outline:none;flex:1;padding:.625rem 1rem;font-size:.9375rem;transition:border-color .15s}.user-search-input:focus{border-color:#3b82f6}.user-search-results{flex:1;padding:1rem;overflow-y:auto}.search-loading,.no-results{text-align:center;color:#6b7280;padding:3rem 1rem}.user-result-item{cursor:pointer;border-radius:.5rem;align-items:center;gap:1rem;padding:1rem;transition:background-color .15s;display:flex}.user-result-item:hover{background-color:#f9fafb}.user-result-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:600;display:flex}.user-result-info{flex:1;min-width:0}.user-result-name{color:#111827;margin:0;font-size:1rem;font-weight:600}.user-result-email{color:#6b7280;margin:.25rem 0 0;font-size:.875rem}.user-result-role{color:#9ca3af;text-transform:capitalize;margin:.25rem 0 0;font-size:.75rem}.start-chat-button{cursor:pointer;color:#fff;background-color:#3b82f6;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.625rem;transition:all .15s;display:flex}.start-chat-button:hover{background-color:#2563eb}.group-creation-modal{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 4px 20px #00000026}.group-creation-header{background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.group-creation-header h2{color:#111827;text-align:center;flex:1;margin:0;font-size:1.25rem;font-weight:600}.close-button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.25rem;transition:background .2s;display:flex}.close-button:hover{background:#e5e7eb}.step-indicator{color:#6b7280;font-size:.875rem;position:absolute;right:1.5rem}.search-section{border-bottom:1px solid #e5e7eb;padding:1rem 1.5rem}.search-input-container{background:#fff;border:1px solid #d1d5db;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.search-input-container svg{color:#9ca3af;flex-shrink:0}.search-input{color:#111827;border:none;outline:none;flex:1;font-size:.9375rem}.search-input::placeholder{color:#9ca3af}.selected-users{background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:1rem 1.5rem}.selected-users-label{color:#6b7280;margin-bottom:.75rem;font-size:.875rem;font-weight:600}.selected-users-chips{flex-wrap:wrap;gap:.5rem;display:flex}.user-chip{color:#fff;background:#3b82f6;border-radius:20px;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;display:inline-flex}.user-chip button{color:#fff;cursor:pointer;opacity:.8;background:0 0;border:none;align-items:center;padding:0;transition:opacity .2s;display:flex}.user-chip button:hover{opacity:1}.users-list{flex:1;padding:.5rem 0;overflow-y:auto}.user-item{cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1.5rem;transition:background .2s;display:flex}.user-item:hover{background:#f9fafb}.user-item.selected{background:#dbeafe}.user-item.selected .user-name{color:#000}.user-item.selected .user-email{color:#374151}.user-item .user-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:600;display:flex}.user-item .user-info{flex:1;min-width:0}.user-item .user-name{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:500;overflow:hidden}.user-item .user-email{color:#4b5563;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.checkbox{border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.checkbox.checked{color:#fff;background:#3b82f6;border-color:#3b82f6;font-weight:600}.group-details-section{flex:1;padding:1.5rem;overflow-y:auto}.group-icon-placeholder{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 1.5rem;display:flex}.form-group label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-input,.form-textarea{color:#111827;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:.75rem;font-size:.9375rem;transition:border-color .2s}.form-input:focus,.form-textarea:focus{border-color:#3b82f6;outline:none}.form-textarea{resize:vertical;font-family:inherit}.members-summary{border-top:1px solid #e5e7eb;margin-top:1rem;padding-top:1.5rem}.members-summary-header{color:#6b7280;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.875rem;font-weight:600;display:flex}.members-summary-list{flex-wrap:wrap;gap:.75rem;display:flex}.member-summary-item{color:#374151;background:#f3f4f6;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;display:flex}.member-avatar-small{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:600;display:flex}.group-creation-modal .modal-actions{background:#f9fafb;border-top:1px solid #e5e7eb;gap:.75rem;padding:1rem 1.5rem;display:flex}.group-creation-modal .btn-cancel{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:1;padding:.75rem;font-weight:500;transition:all .2s}.group-creation-modal .btn-cancel:hover{background:#f9fafb}.group-creation-modal .btn-primary{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:8px;flex:1;padding:.75rem;font-weight:500;transition:all .2s}.group-creation-modal .btn-primary:hover:not(:disabled){background:#2563eb}.group-creation-modal .btn-primary:disabled{opacity:.5;cursor:not-allowed}.cm-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0f172a59;justify-content:center;align-items:center;animation:.18s cm-fade-in;display:flex;position:fixed;inset:0}@keyframes cm-fade-in{0%{opacity:0}to{opacity:1}}.cm-modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;width:460px;max-width:calc(100vw - 32px);max-height:82vh;animation:.2s cm-slide-up;display:flex;overflow:hidden;box-shadow:0 4px 6px #0f172a0a,0 20px 50px #0f172a1f}@keyframes cm-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cm-header{background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.cm-header-icon{color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 2px 8px #1d4ed84d}.cm-header-text{flex:1}.cm-header-text h2{color:#0f172a;letter-spacing:-.2px;margin:0 0 2px;font-size:15px;font-weight:700}.cm-header-text p{color:#64748b;margin:0;font-size:12px}.cm-close{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.cm-close:hover{color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.cm-search-wrapper{flex-shrink:0;padding:14px 16px 10px;position:relative}.cm-search-icon{color:#94a3b8;pointer-events:none;position:absolute;top:50%;left:28px;transform:translateY(-50%)}.cm-search-input{box-sizing:border-box;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 12px 9px 36px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.cm-search-input::placeholder{color:#94a3b8}.cm-search-input:focus{background:#fff;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81a}.cm-chips{flex-wrap:wrap;flex-shrink:0;gap:6px;padding:0 16px 10px;display:flex}.cm-chip{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;align-items:center;gap:5px;padding:4px 8px 4px 10px;font-size:12px;font-weight:500;display:inline-flex}.cm-chip-remove{color:#1d4ed8;cursor:pointer;background:#dbeafe;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;transition:all .15s;display:flex}.cm-chip-remove:hover{color:#dc2626;background:#fee2e2}.cm-user-list{scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent;flex:1;padding:4px 8px;overflow-y:auto}.cm-user-list::-webkit-scrollbar{width:4px}.cm-user-list::-webkit-scrollbar-track{background:0 0}.cm-user-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:4px}.cm-empty{text-align:center;color:#94a3b8;padding:32px 0;font-size:14px}.cm-user-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9px;align-items:center;gap:12px;padding:9px 10px;transition:background .12s;display:flex}.cm-user-item:hover{background:#f8fafc}.cm-user-item.selected{background:#eff6ff}.cm-avatar{color:#fff;background:linear-gradient(135deg,#1d4ed8,#7c3aed);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.cm-user-info{flex:1;min-width:0}.cm-user-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;display:block;overflow:hidden}.cm-user-email{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.cm-checkbox{background:#fff;border:2px solid #cbd5e1;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex}.cm-checkbox.checked{color:#fff;background:#1d4ed8;border-color:#1d4ed8}.cm-status{color:#1d4ed8;background:#eff6ff;border-top:1px solid #dbeafe;flex-shrink:0;align-items:center;gap:8px;padding:10px 20px;font-size:13px;display:flex}.cm-footer{background:#f8fafc;border-top:1px solid #f1f5f9;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;display:flex}.cm-btn-cancel{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .15s}.cm-btn-cancel:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.cm-btn-cancel:disabled{opacity:.5;cursor:not-allowed}.cm-btn-create{color:#fff;cursor:pointer;background:#1d4ed8;border:none;border-radius:8px;align-items:center;gap:7px;padding:8px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .15s;display:flex;box-shadow:0 1px 4px #1d4ed840}.cm-btn-create:hover:not(:disabled){background:#1e40af;transform:translateY(-1px);box-shadow:0 4px 12px #1d4ed859}.cm-btn-create:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #1d4ed833}.cm-btn-create:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}@keyframes cm-spin{to{transform:rotate(360deg)}}.cm-spinner{flex-shrink:0;animation:.8s linear infinite cm-spin}.messages-page{background:#fff;height:100%;overflow:hidden}.messages-layout{grid-template-columns:350px 1fr;height:100%;display:grid;overflow:hidden}.conversations-panel{border-right:1px solid #e5e7eb;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.chat-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.new-action-container{z-index:10;position:absolute;bottom:1.5rem;right:1.5rem}.new-chat-button{color:#fff;cursor:pointer;background-color:#3b82f6;border:none;border-radius:2rem;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:flex;box-shadow:0 10px 15px -3px #3b82f64d,0 4px 6px -2px #3b82f633}.new-chat-button:hover{background-color:#2563eb;transform:translateY(-2px);box-shadow:0 20px 25px -5px #3b82f64d,0 10px 10px -5px #3b82f633}.new-chat-button:active{transform:translateY(0)}.dropdown-icon{transition:transform .2s}.dropdown-icon.open{transform:rotate(180deg)}.new-action-dropdown{background:#fff;border-radius:12px;min-width:200px;margin-bottom:.5rem;animation:.2s ease-out dropdownSlideUp;position:absolute;bottom:100%;right:0;overflow:hidden;box-shadow:0 10px 25px #00000026}@keyframes dropdownSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{color:#374151;cursor:pointer;text-align:left;background:#fff;border:none;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;font-size:.9375rem;font-weight:500;transition:background .2s;display:flex}.dropdown-item:hover{background:#f3f4f6}.dropdown-item:not(:last-child){border-bottom:1px solid #f3f4f6}.dropdown-item svg{color:#6b7280}@media (width<=768px){.messages-layout{grid-template-columns:1fr}.chat-panel,.messages-layout.chat-open .conversations-panel{display:none}.messages-layout.chat-open .chat-panel{display:flex}}:root{--bg-primary:#f8fafc;--bg-surface:#fff;--bg-elevated:#f1f5f9;--bg-hover:#e2e8f0;--bg-glass:#ffffffe6;--accent-blue:#1d4ed8;--accent-blue-glow:#1d4ed833;--accent-green:#047857;--accent-green-glow:#04785726;--accent-red:#dc2626;--accent-red-glow:#dc262626;--accent-yellow:#d97706;--accent-yellow-glow:#d9770626;--accent-purple:#6d28d9;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-inverse:#fff;--border:#e2e8f0;--border-light:#cbd5e1;--border-accent:#1d4ed84d;--sidebar-width:240px;--header-height:60px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a14, 0 2px 4px #0f172a0a;--shadow-lg:0 10px 25px #0f172a1a, 0 4px 10px #0f172a0d;--transition:all .2s ease;--transition-slow:all .4s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}h1{letter-spacing:-.5px;color:var(--text-primary);font-size:1.75rem;font-weight:800}h2{color:var(--text-primary);font-size:1.4rem;font-weight:700}h3{color:var(--text-primary);font-size:1.1rem;font-weight:600}h4{color:var(--text-primary);font-size:.95rem;font-weight:600}p{color:var(--text-secondary)}.mono{font-family:JetBrains Mono,monospace}.bg-gradient-animated{background:var(--bg-primary);min-height:100vh}.app-layout{min-height:100vh;display:flex}.main-content{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;height:100vh;max-height:100vh;display:flex;overflow:hidden auto}.page-content{min-height:0;margin-top:var(--header-height);flex:1;padding:28px 32px;overflow-y:auto}.sidebar{width:var(--sidebar-width);z-index:100;transition:var(--transition);background:#0f172a;border-right:1px solid #1e293b;flex-direction:column;padding:0;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 12px #0f172a14}.app-layout,.main-content,.sidebar{transition:width .22s,margin-left .22s}.app-layout.sidebar-collapsed{--sidebar-width:70px}.sidebar.collapsed{width:var(--sidebar-width)}.sidebar.collapsed .sidebar-logo{padding-left:10px!important;padding-right:10px!important}.sidebar.collapsed .sidebar-nav{padding-left:8px;padding-right:8px}.sidebar.collapsed .module-label,.sidebar.collapsed .module-title,.sidebar.collapsed .module-chevron,.sidebar.collapsed .sidebar-empty-item,.sidebar.collapsed .user-info{display:none}.sidebar.collapsed .nav-item,.sidebar.collapsed .sidebar-module-header{justify-content:center;gap:0;padding-left:8px;padding-right:8px}.sidebar.collapsed .sidebar-module.has-active>.sidebar-module-header,.sidebar.collapsed .nav-item.active{color:#93c5fd;background:linear-gradient(90deg,#2563eb4d,#2563eb1a)}.sidebar.collapsed .sidebar-submodules{display:none}.sidebar.collapsed .sidebar-footer{padding:10px}.sidebar.collapsed .user-pill{justify-content:center;padding:8px}.sidebar.collapsed .sidebar-logout-btn{display:none!important}.sidebar.collapsed .sidebar-toggle{justify-content:center;padding-left:8px;padding-right:8px}.sidebar-toggle{color:#cbd5e1;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:8px;justify-content:flex-start;align-items:center;gap:9px;width:calc(100% - 24px);margin:0 12px 10px;padding:9px 10px;font-size:.75rem;display:flex}.sidebar-toggle:hover{color:#fff;background:#263449}.sidebar-logo{border-bottom:1px solid #1e293b;justify-content:center;align-items:center;gap:10px;padding:20px 20px 16px;display:flex}.sidebar-logo-icon{border-radius:var(--radius-md);background:linear-gradient(135deg,#1d4ed8,#6d28d9);justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex;box-shadow:0 0 12px #1d4ed866}.sidebar-logo-text{flex-direction:column;display:flex}.sidebar-logo-title{color:#fff;font-size:.85rem;font-weight:700;line-height:1.2}.sidebar-logo-sub{color:#94a3b8;font-size:.68rem;font-weight:400}.sidebar-nav{flex:1;padding:12px;overflow-y:auto}.sidebar-module{margin-bottom:6px}.sidebar-module-header{border-radius:var(--radius-md);color:#94a3b8;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;width:100%;transition:var(--transition);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:10px;font-size:.78rem;font-weight:700;display:flex}.sidebar-module-header:hover{color:#fff;background:#1e293b}.sidebar-module-header.expanded{color:#e2e8f0}.sidebar-module.has-active>.sidebar-module-header{color:#60a5fa}.module-icon{font-size:1rem}.module-title{flex:1}.module-chevron{color:#64748b;font-size:.8rem;transition:transform .2s}.sidebar-submodules{flex-direction:column;gap:2px;margin-top:4px;padding-left:10px;display:flex}.sidebar-empty-item{color:#475569;padding:6px 12px}.nav-item{border-radius:var(--radius-md);color:#94a3b8;transition:var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;margin-bottom:2px;padding:10px 12px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:#fff;background:#1e293b}.nav-item.active{color:#60a5fa;background:linear-gradient(90deg,#2563eb40,#2563eb14);border:1px solid #3b82f640;font-weight:600}.nav-item.active:before{content:"";background:#3b82f6;border-radius:0 2px 2px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-item .nav-badge{background:var(--accent-red);color:#fff;text-align:center;border-radius:10px;min-width:20px;margin-left:auto;padding:1px 6px;font-size:.65rem;font-weight:700;animation:2s infinite pulse-badge}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.sidebar-footer{border-top:1px solid #1e293b;padding:16px}.user-pill{border-radius:var(--radius-md);background:#1e293b;border:1px solid #334155;align-items:center;gap:10px;padding:10px 12px;display:flex}.user-avatar{color:#fff;background:linear-gradient(135deg,#1d4ed8,#6d28d9);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.user-info{flex:1;min-width:0}.user-name,.sidebar-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:700;overflow:hidden;color:#fff!important}.user-role,.sidebar-user-role{text-transform:capitalize;font-size:.72rem;color:#94a3b8!important}.sidebar-logout-btn:hover:not(:disabled){color:#f87171!important;background:#ef444433!important;border-color:#ef444466!important}.header{height:var(--header-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);top:0;left:var(--sidebar-width);z-index:90;background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;padding:0 28px;display:flex;position:fixed;right:0;box-shadow:0 1px 3px #0f172a0a}.header-title{color:var(--text-primary);font-size:1rem;font-weight:700}.header-sub{color:var(--text-muted);font-size:.75rem}.header-right{align-items:center;gap:12px;display:flex}.ws-indicator{color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;display:flex}.ws-dot{background:var(--accent-green);border-radius:50%;width:8px;height:8px;animation:2s infinite ws-pulse}.ws-dot.disconnected{background:var(--accent-red);animation:none}@keyframes ws-pulse{0%,to{opacity:1;box-shadow:0 0 4px var(--accent-green)}50%{opacity:.6;box-shadow:0 0 12px var(--accent-green-glow)}}.shift-tabs{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px;padding:3px;display:flex}.shift-tab{color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:6px;padding:4px 12px;font-size:.75rem;font-weight:600}.shift-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 6px var(--accent-blue-glow)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);padding:20px}.card:hover{border-color:var(--border-light)}.card-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px}.stat-grid{grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);cursor:default;padding:20px;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--stat-accent,var(--accent-blue));border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:2px;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-light);transform:translateY(-2px)}.stat-card.alert{border-color:#ef44444d;box-shadow:0 0 20px #ef44441a}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem;font-weight:600}.stat-value{color:var(--text-primary);transition:var(--transition-slow);margin-bottom:6px;font-size:2rem;font-weight:800;line-height:1}.stat-sub{color:var(--text-muted);align-items:center;gap:4px;font-size:.75rem;display:flex}.stat-icon{opacity:.15;font-size:2rem;position:absolute;top:16px;right:16px}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:20px;display:grid}.grid-2-1{grid-template-columns:2fr 1fr;gap:20px;display:grid}.grid-1-2{grid-template-columns:1fr 2fr;gap:20px;display:grid}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-title{color:var(--text-primary);align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.section-title .dot{background:var(--accent-blue);width:8px;height:8px;box-shadow:0 0 8px var(--accent-blue-glow);border-radius:50%}.live-feed{flex-direction:column;gap:10px;max-height:420px;padding-right:4px;display:flex;overflow-y:auto}.session-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);padding:14px 16px;position:relative;overflow:hidden}.session-card:hover{border-color:var(--border-accent);background:var(--bg-hover);transform:translate(2px)}.session-card.has-ooc{border-color:#ef44444d;box-shadow:inset 0 0 0 1px #ef44441a}.session-card.has-critical{border-color:var(--accent-red);animation:2s infinite critical-pulse;box-shadow:0 0 12px #ef444433,inset 0 0 0 1px #ef444426}@keyframes critical-pulse{0%,to{box-shadow:0 0 12px #ef444433}50%{box-shadow:0 0 24px #ef444466}}.session-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.session-machine{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700}.session-part{color:var(--text-secondary);margin-top:1px;font-size:.75rem}.session-meta{align-items:center;gap:8px;margin-bottom:10px;display:flex}.session-operator{color:var(--text-muted);font-size:.72rem}.progress-bar{background:var(--bg-primary);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-blue), var(--accent-purple));border-radius:2px;height:100%;transition:width .8s;position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d);width:20px;animation:1.5s infinite shimmer;position:absolute;top:0;bottom:0;right:0}@keyframes shimmer{0%{opacity:0}50%{opacity:1}to{opacity:0}}.progress-fill.ooc{background:linear-gradient(90deg, var(--accent-red), #ff6b6b)}.badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex}.badge-ok{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.badge-ooc{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.badge-approved{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.badge-rejected{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.badge-pending{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.badge-progress{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe}.badge-critical{color:#dc2626;background:#fee2e2;border:1px solid #fca5a5;font-weight:700;animation:2s infinite critical-pulse}.badge-voice{color:#6d28d9;background:#f3e8ff;border:1px solid #e9d5ff}.badge-manual{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.82rem}thead tr{background:var(--bg-elevated);border-bottom:1px solid var(--border)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:12px 16px;font-size:.7rem;font-weight:700}tbody tr{border-bottom:1px solid var(--border);transition:var(--transition)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg-elevated)}tbody tr.row-ooc{background:#ef44440d}tbody tr.row-ooc:hover{background:#ef444414}td{color:var(--text-secondary);vertical-align:middle;padding:12px 16px}td.mono-val{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.8rem}td.deviation-ok{color:var(--accent-green);font-family:JetBrains Mono,monospace}td.deviation-ooc{color:var(--accent-red);font-family:JetBrains Mono,monospace;font-weight:600}.clickable-row{cursor:pointer}.btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-blue);color:#fff;box-shadow:0 0 #3b82f600}.btn-primary:hover:not(:disabled){box-shadow:0 0 16px var(--accent-blue-glow);background:#2563eb;transform:translateY(-1px)}.btn-success{background:var(--accent-green);color:#fff}.btn-success:hover:not(:disabled){box-shadow:0 0 16px var(--accent-green-glow);background:#059669;transform:translateY(-1px)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:0 0 16px var(--accent-red-glow);background:#dc2626;transform:translateY(-1px)}.btn-ghost{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:.75rem}.btn-lg{padding:12px 24px;font-size:.9rem}.form-group{margin-bottom:18px}.company-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;display:grid}.plant-entry-row{width:100%}@media (width<=760px){.company-profile-grid{grid-template-columns:1fr}.plant-entry-row{width:100%}}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:.78rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:var(--transition);outline:none;padding:10px 14px;font-family:Inter,sans-serif;font-size:.875rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f626}.form-input::placeholder{color:var(--text-muted)}select:not([multiple]){cursor:pointer;appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='20' viewBox='0 0 16 20' fill='none' stroke='%2364758b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 7 4-4 4 4M4 13l4 4 4-4'/%3E%3C/svg%3E")!important;background-position:right 12px center!important;background-repeat:no-repeat!important;background-size:14px 18px!important;padding-right:40px!important}.form-select{cursor:pointer;appearance:none}.form-textarea{resize:vertical;min-height:80px}.modal-backdrop,.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;overscroll-behavior:contain;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.2s backdrop-in;display:flex;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal,.modal-content{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;padding:28px;animation:.25s modal-in;position:relative;overflow-y:auto;box-shadow:0 20px 50px #000c}.modal{overscroll-behavior:contain;flex-direction:column;display:flex;overflow:hidden}.modal-body{overscroll-behavior:contain;min-height:0;overflow-y:auto}.modal-2xl{width:95vw;max-width:95vw}.modal-wide{width:100%;max-width:1320px}.modal-xl{max-width:1200px}.modal-role-editor{width:110%;max-width:1320px}.modal-lg{max-width:900px}.parameter-rule-editor-modal{flex-direction:column;width:min(1280px,100vw - 40px);max-width:1280px;height:min(860px,100vh - 40px);max-height:calc(100vh - 40px);display:flex;overflow:hidden}.parameter-rule-editor-modal form{flex-direction:column;flex:auto;min-height:0;display:flex}.parameter-rule-editor-modal .modal-body{overscroll-behavior:contain;flex:auto;min-height:0;padding-right:8px;overflow-y:auto}.parameter-rule-editor-modal .modal-footer{flex:none;margin-top:12px}@media (width<=760px){.parameter-rule-editor-modal{width:100%;max-width:none;height:calc(100vh - 24px);max-height:calc(100vh - 24px);padding:18px}}.user-permission-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(#f8fafc 0%,#fff 100%);padding:16px}.user-permission-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.permission-summary,.permission-count{color:#1d4ed8;white-space:nowrap;background:#dbeafe;border-radius:999px;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.permission-summary{padding:7px 10px}.permission-count{margin-left:2px;padding:5px 7px}.permission-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:2px 5px 2px 2px;display:grid}.permission-group{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);min-width:0;box-shadow:var(--shadow-sm);padding:12px}.permission-group-title{max-width:100%;color:var(--text-primary);letter-spacing:.02em;padding:0 6px;font-size:12px;font-weight:800}.permission-options{gap:6px;margin-top:5px;display:grid}.permission-option{min-height:42px;color:var(--text-secondary);cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:9px;padding:8px 9px;font-size:12px;line-height:1.35;transition:background .16s,border-color .16s;display:flex}.permission-option:hover{border-color:var(--border);background:#f8fafc}.permission-option.is-selected{color:#1e3a8a;background:#eff6ff;border-color:#bfdbfe}.permission-option.is-common{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.permission-option input{accent-color:var(--accent-blue);flex:none;margin-top:2px}.permission-option-text{gap:2px;display:grid}.permission-option-text small{color:var(--text-muted);font-size:10px}@media (width<=760px){.permission-picker{grid-template-columns:1fr}.user-permission-header{align-items:flex-start}}@keyframes modal-in{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.modal-title{font-size:1.1rem;font-weight:700}.modal-close,.btn-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:none;padding:4px 8px;font-size:1.25rem;line-height:1}.modal-close:hover,.btn-close:hover{color:var(--text-primary);background:var(--bg-elevated)}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;display:flex}.login-page{background:radial-gradient(ellipse at 30% 40%, #3b82f614 0%, transparent 60%), radial-gradient(ellipse at 70% 70%, #8b5cf60f 0%, transparent 60%), var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:40px;animation:.4s modal-in;box-shadow:0 20px 60px #00000080,0 0 40px #3b82f60d}.login-logo{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));border-radius:var(--radius-lg);width:52px;height:52px;box-shadow:0 0 24px var(--accent-blue-glow);justify-content:center;align-items:center;margin:0 auto 20px;font-size:24px;display:flex}.login-title{text-align:center;margin-bottom:6px;font-size:1.5rem;font-weight:800}.login-sub{text-align:center;color:var(--text-muted);margin-bottom:28px;font-size:.8rem}.login-error{color:#fca5a5;border-radius:var(--radius-md);background:#ef44441a;border:1px solid #ef444440;margin-bottom:16px;padding:10px 14px;font-size:.8rem}.alert-list{flex-direction:column;gap:8px;max-height:280px;display:flex;overflow-y:auto}.alert-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);border-left:3px solid var(--alert-color,var(--accent-yellow));align-items:flex-start;gap:10px;padding:12px 14px;font-size:.8rem;animation:.3s slide-in;display:flex}@keyframes slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.alert-item.critical{--alert-color:var(--accent-red)}.alert-item.ooc{--alert-color:var(--accent-yellow)}.alert-item.info{--alert-color:var(--accent-blue)}.app-toast{z-index:20000;color:#fff;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:16px;width:min(560px,100vw - 32px);padding:12px 14px 12px 16px;font-size:.82rem;line-height:1.4;animation:.18s ease-out app-toast-in;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 32px #7f1d1d47,0 0 0 1px #f871717a}.app-toast-error{background:#dc2626}.app-toast-close{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;margin:-2px -2px 0 0;padding:0 2px;font-size:1.25rem;line-height:1}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.app-toast{animation:none}}.alert-icon{flex-shrink:0;margin-top:1px}.alert-body{flex:1}.alert-msg{color:var(--text-primary);font-weight:500}.alert-time{color:var(--text-muted);margin-top:2px;font-size:.7rem}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 20px;display:flex}.empty-state-icon{opacity:.4;font-size:2.5rem}.empty-state-text{font-size:.85rem}.spinner-container{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chart-container{width:100%;height:220px}.chart-container-lg{width:100%;height:280px}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg-elevated)!important;border:1px solid var(--border-light)!important;border-radius:var(--radius-md)!important;color:var(--text-primary)!important;font-size:.78rem!important}.recharts-cartesian-axis-tick-value{fill:var(--text-muted)!important;font-size:.7rem!important}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border)!important}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header-left{flex-direction:column;gap:2px;display:flex}.header-role-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:.7rem;font-weight:800;display:inline-flex;box-shadow:0 1px 2px #0000000a}.header-role-pill.role-admin{color:#5b21b6;background:#ede9fe;border:1px solid #c4b5fd}.header-role-pill.role-supervisor{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.header-role-pill.role-calibrator{color:#0f766e;background:#ccfbf1;border:1px solid #99f6e4}.header-role-pill.role-operator{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.header-role-pill.role-quality_engineer,.header-role-pill.role-inspector{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.header-role-pill.role-default{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.page-breadcrumb{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.8rem;line-height:1.4;display:flex}.page-breadcrumb a{color:var(--accent-blue);font-weight:500;text-decoration:none;transition:color .15s}.page-breadcrumb a:hover{color:#1d4ed8;text-decoration:underline}.page-breadcrumb .breadcrumb-separator{color:#94a3b8;-webkit-user-select:none;user-select:none;margin:0 1px;font-weight:400}.page-breadcrumb .breadcrumb-current{color:#334155;font-weight:600}.calibration-breadcrumb{margin:-10px 0 18px}.info-row{flex-wrap:wrap;gap:24px;margin-bottom:20px;display:flex}.info-item{flex-direction:column;gap:2px;display:flex}.info-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;font-weight:600}.info-value{color:var(--text-primary);font-size:.85rem;font-weight:500}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.calibration-nav{z-index:80;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:8px;width:fit-content;margin-bottom:24px;padding:6px;display:flex;position:sticky;top:12px}.calibration-nav-link{border-radius:var(--radius-md);color:var(--text-secondary);transition:var(--transition);align-items:center;gap:7px;padding:8px 14px;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-flex}.calibration-nav-link:hover{color:var(--text-primary);background:var(--bg-elevated)}.calibration-nav-link.active{color:var(--text-inverse);background:var(--accent-blue);box-shadow:var(--shadow-sm)}.calibration-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px;display:grid}.calibration-compliance-card{width:100%;color:inherit;text-align:left;cursor:pointer;transition:var(--transition);display:block}.calibration-compliance-card:hover,.calibration-compliance-card:focus-visible{border-color:var(--border-accent);box-shadow:var(--shadow-md);outline:none}.calibration-compliance-percent{color:var(--accent-green);letter-spacing:-.04em;font-size:2.15rem}.calibration-compliance-meter{background:var(--bg-elevated);border-radius:999px;height:10px;margin:24px 0 18px;overflow:hidden}.calibration-compliance-meter span{background:linear-gradient(90deg, var(--accent-green), #34d399);border-radius:inherit;height:100%;transition:width .25s;display:block}.calibration-compliance-summary-list{color:var(--text-secondary);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:22px;font-size:.82rem;display:grid}.calibration-compliance-summary-list span{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:42px;padding:8px 0;display:flex}.calibration-compliance-summary-list strong{color:var(--text-primary);font-size:1.1rem}.calibration-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.calibration-stat-filter{border-radius:var(--radius-lg);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.calibration-stat-filter .stat-card{cursor:pointer;height:100%}.calibration-stat-filter.active .stat-card{border-color:var(--border-accent);box-shadow:0 0 0 2px var(--accent-blue-glow), var(--shadow-md)}.calibration-stat-filter:focus-visible{outline:3px solid var(--accent-blue-glow);outline-offset:2px}.calibration-chart-card{min-width:0}.calibration-chart-shell{width:100%;height:230px}.calibration-chart-empty{min-height:230px}.calibration-calendar-card{min-width:0}.calibration-calendar-header{align-items:flex-start;gap:16px}.calibration-calendar-toolbar{align-items:center;gap:6px;display:flex}.calibration-calendar-icon-button{justify-content:center;width:44px;min-width:44px;min-height:44px;padding:0}.calibration-calendar-month{min-width:138px;color:var(--text-primary);text-align:center;font-size:.82rem}.calibration-calendar-today{min-height:44px}.calibration-month-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.calibration-month-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);min-height:76px;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;transition:var(--transition);grid-template-columns:1fr auto;align-items:center;padding:12px;display:grid}.calibration-month-card:hover,.calibration-month-card.selected{background:color-mix(in srgb, var(--accent-blue) 12%, var(--bg-surface));border-color:var(--accent-blue);color:var(--text-primary)}.calibration-month-card strong{color:var(--accent-blue);font-size:1.25rem}.calibration-month-card small{color:var(--text-muted);grid-column:1/-1}.calibration-chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);box-shadow:var(--shadow-md);flex-direction:column;gap:3px;padding:9px 12px;font-size:.78rem;display:flex}.calibration-chart-legend{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px;margin-top:12px;display:grid}.calibration-legend-button{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);min-height:44px;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;transition:var(--transition);grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px 10px;font-size:.72rem;display:grid}.calibration-legend-button:hover,.calibration-legend-button.active{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-accent)}.calibration-legend-button:focus-visible{outline:3px solid var(--accent-blue-glow);outline-offset:2px}.calibration-legend-swatch{border-radius:3px;width:9px;height:9px}.calibration-detail-card{flex-direction:column;min-width:0;height:460px;scroll-margin-top:96px;display:flex}.calibration-detail-card:focus{outline:3px solid var(--accent-blue-glow);outline-offset:3px}.calibration-detail-card .table-wrapper{flex:1;min-height:0;overflow:auto}.calibration-detail-table thead{z-index:2;position:sticky;top:0}.calibration-detail-header,.calibration-detail-controls{gap:12px}.calibration-detail-controls{align-items:center;display:flex}.calibration-detail-controls .form-select{width:220px}.calibration-detail-empty{flex:1;min-height:140px}.calibration-detail-table{min-width:860px}.calibration-equipment-link{min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;padding:0;line-height:1.5;display:inline-flex}.calibration-equipment-link:hover .text-blue{text-underline-offset:3px;text-decoration:underline}.calibration-equipment-link:focus-visible{outline:3px solid var(--accent-blue-glow);outline-offset:3px;border-radius:var(--radius-sm)}.calibration-clickable-row{cursor:pointer}.calibration-clickable-row:focus-within{background:var(--bg-elevated)}.calibration-status-equipment{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);gap:4px;margin-bottom:18px;padding:12px 14px;display:grid}.calibration-status-equipment span{color:var(--text-muted);font-size:.75rem}.calibration-status-equipment-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.calibration-status-equipment-details span{color:var(--text-secondary);background:var(--bg-surface);border-radius:var(--radius-sm);gap:2px;padding:8px;font-size:.75rem;display:grid}.calibration-status-equipment-details small{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem;font-weight:700}.calibration-status-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.calibration-status-choice{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:72px;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;transition:var(--transition);align-items:center;gap:10px;padding:12px;display:flex}.calibration-status-choice span{gap:3px;display:grid}.calibration-status-choice small{color:var(--text-muted);font-size:.68rem}.calibration-status-choice:hover{background:var(--bg-hover)}.calibration-status-choice.passed.active{color:var(--accent-green);background:var(--accent-green-glow);border-color:var(--accent-green)}.calibration-status-choice.failed.active{color:var(--accent-red);background:var(--accent-red-glow);border-color:var(--accent-red)}.calibration-status-choice:focus-visible{outline:3px solid var(--accent-blue-glow);outline-offset:2px}.calibration-status-help{background:var(--accent-green-glow);border:1px solid var(--accent-green);border-radius:var(--radius-md);color:var(--text-secondary);margin-top:-4px;padding:10px 12px;font-size:.75rem;line-height:1.5}.calibration-registry-card{max-width:900px}.calibration-form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding-top:16px;display:flex}.calibration-status-failed-help{color:var(--accent-red);background:var(--accent-red-glow);border-color:var(--accent-red);margin-top:0}.calibration-section-header{align-items:flex-start}.calibration-register-button{white-space:nowrap;flex:none;width:fit-content}.calibration-toolbar{justify-content:space-between}.calibration-search{flex:1;align-items:center;max-width:560px;display:flex;position:relative}.calibration-search>svg{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.calibration-search .form-input{padding-left:40px}.calibration-status-filter{width:180px}.calibration-table{min-width:1460px}.calibration-actions{align-items:center;gap:8px;display:flex}.calibration-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.calibration-form-span{grid-column:1/-1}.calibration-result-details{margin-top:18px}.calibration-report-card{min-width:0}.calibration-report-toolbar,.calibration-report-actions{align-items:flex-end;gap:14px}.calibration-report-actions{display:flex}.calibration-report-year{align-items:center;gap:8px;display:flex}.calibration-plan-management{margin-bottom:24px;overflow:auto}.calibration-plan-management th{z-index:2;background:var(--bg-elevated);position:sticky;top:0}.calibration-plan-management:focus-visible{outline:3px solid var(--accent-blue-glow);outline-offset:3px}.calibration-print-sheet{color:var(--text-primary)}.calibration-report-heading{border:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 14px;display:flex}.calibration-report-heading h1{letter-spacing:.06em;margin:0;font-size:1rem}.calibration-plan-document-header{border:1px solid var(--text-primary);text-align:center;grid-template-columns:1fr 4fr 1fr;align-items:stretch;margin-bottom:-1px;display:grid}.calibration-plan-document-header>*{border-right:1px solid var(--text-primary);justify-content:center;align-items:center;min-height:64px;margin:0;padding:8px;display:flex}.calibration-plan-document-header>div:first-child{flex-direction:column;gap:2px}.calibration-plan-document-header small{color:inherit;font-size:.62rem;line-height:1.3;display:block}.calibration-plan-filters{margin-bottom:16px}.calibration-dashboard-list{margin-top:20px}.calibration-dashboard-list-filters{margin-bottom:16px}.calibration-dashboard-table{min-width:900px}.calibration-modal-search{max-width:none;margin-bottom:16px}.calibration-compliance-filters{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-bottom:16px;display:grid}.calibration-compliance-filter{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);min-height:42px;color:var(--text-secondary);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.calibration-compliance-filter.active{border-color:var(--accent-blue);background:var(--accent-blue-soft);color:var(--text-primary)}.calibration-pagination{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:12px;margin:12px 0 20px;font-size:.78rem;display:flex}.calibration-disposition-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.calibration-evidence-frame{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;width:100%;min-height:65vh}.calibration-evidence-image{object-fit:contain;max-width:100%;max-height:65vh;margin:0 auto;display:block}.calibration-plan-document-header>:last-child{border-right:0;font-size:.68rem;font-weight:700}.calibration-plan-document-header h1{font-size:1rem}.calibration-plan-template{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1420px}.calibration-plan-template th,.calibration-plan-template td{border:1px solid var(--text-primary);text-align:center;vertical-align:middle;white-space:normal;height:34px;padding:4px}.calibration-plan-template th{font-size:.68rem}.calibration-plan-template th:first-child{width:4%}.calibration-plan-template th:nth-child(2){width:14%}.calibration-plan-template th:nth-child(3){width:11%}.calibration-plan-template th:nth-child(4){width:6%}.calibration-plan-template th:last-child{width:13%}.calibration-plan-mark{font-weight:800}.calibration-plan-mark.planned{color:#fff;background:#111}.calibration-plan-mark.actual{color:#fff;background:#047857}.calibration-plan-mark.failed{color:#fff;background:#b91c1c}.calibration-plan-mark.repair{color:#111827;background:#fde68a}.calibration-plan-mark.scrapped{color:#fff;background:#4b5563}.calibration-plan-result{color:#fff;background:#047857;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.calibration-plan-result.failed{background:#b91c1c}.calibration-plan-result.repair{color:#713f12;background:#fde68a}.calibration-plan-result.scrapped{background:#4b5563}.calibration-plan-signatures{border:1px solid var(--text-primary);text-align:center;border-top:0;grid-template-columns:1fr 1fr;min-height:84px;padding:16px 10%;font-weight:600;display:grid}.calibration-report-table{min-width:980px}.calibration-report-table th,.calibration-report-table td{white-space:normal;vertical-align:top}.calibration-equipment-details{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px;display:grid}.calibration-equipment-details>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);gap:4px;min-height:44px;padding:6px 8px;display:grid}.calibration-equipment-details span{color:var(--text-muted);text-transform:uppercase;font-size:.68rem}.calibration-notice{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:10px 14px;font-size:.82rem;font-weight:600}.calibration-notice-success{color:var(--accent-green);background:var(--accent-green-glow);border-color:var(--accent-green)}.calibration-notice-error{color:var(--accent-red);background:var(--accent-red-glow);border-color:var(--accent-red)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.w-full{width:100%}.text-sm{font-size:.82rem}.text-xs{font-size:.72rem}.text-muted{color:var(--text-muted)}.text-green{color:var(--accent-green)}.text-red{color:var(--accent-red)}.text-blue{color:var(--accent-blue)}.text-yellow{color:var(--accent-yellow)}.font-bold{font-weight:700}.font-mono{font-family:JetBrains Mono,monospace}@media (width<=1200px){.stat-grid{grid-template-columns:repeat(3,1fr)}.calibration-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.header{left:0}.grid-2,.grid-2-1,.grid-1-2{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.calibration-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calibration-toolbar{flex-direction:column;align-items:stretch}.calibration-search{max-width:none}.calibration-status-filter{width:100%}.calibration-form-grid{grid-template-columns:1fr}.calibration-form-span{grid-column:auto}.modal-role-editor{width:100%}.calibration-focus-grid{grid-template-columns:1fr}.calibration-nav{width:100%;overflow-x:auto}.calibration-nav-link{white-space:nowrap}.calibration-actions .btn{min-height:44px}.calibration-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calibration-equipment-details{grid-template-columns:repeat(2,minmax(0,1fr))}#calibration-registry-form .form-input,#calibration-registry-form .form-textarea,#calibration-edit-form .form-input,#calibration-edit-form .form-textarea,#calibration-status-form .form-input,#calibration-status-form .form-textarea{font-size:1rem}}@media (width<=560px){.page-content.calibration-page{padding:20px 16px}.calibration-stat-grid,.calibration-compliance-summary-list{grid-template-columns:1fr}.calibration-section-header{flex-direction:column;align-items:stretch;gap:12px}.calibration-section-header .btn{justify-content:center}.calibration-detail-header,.calibration-detail-controls{flex-direction:column;align-items:stretch}.calibration-detail-controls .form-select,.calibration-detail-controls .btn{justify-content:center;width:100%}.calibration-detail-card{height:420px}.calibration-form-actions{flex-direction:column-reverse}.calibration-form-actions .btn{justify-content:center;width:100%}.calibration-calendar-card{padding:14px 10px}.calibration-calendar-header{flex-direction:column;align-items:stretch}.calibration-calendar-toolbar{justify-content:space-between}.calibration-calendar-month{flex:1;min-width:0}.calibration-calendar-today{display:none}.calibration-status-choices,.calibration-status-equipment-details,.calibration-disposition-actions{grid-template-columns:1fr}.calibration-pagination{justify-content:space-between}.calibration-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calibration-report-toolbar,.calibration-report-actions{flex-direction:column;align-items:stretch}.calibration-equipment-details{grid-template-columns:1fr}}@media print{@page{size:297mm 210mm;margin:4mm 6mm}html,body{height:100%!important;max-height:100%!important;overflow:hidden!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;page-break-inside:avoid!important}body *{visibility:hidden}.modal-backdrop,.modal-backdrop *,.modal,.modal *,.modal-body,.modal-body *,.official-report-sheet,.official-report-sheet *,.calibration-print-sheet,.calibration-print-sheet *{visibility:visible!important}:is(html:has(.calibration-print-sheet),body:has(.calibration-print-sheet)){height:auto!important;max-height:none!important;overflow:visible!important}.calibration-print-sheet{width:100%;font-size:9pt;position:absolute;top:0;left:0;color:#000!important;background:#fff!important}.calibration-print-sheet,.calibration-print-sheet *{color:#000!important;page-break-inside:auto!important}.calibration-print-sheet tr{page-break-inside:avoid!important}.calibration-print-sheet .table-wrapper{overflow:visible!important}.calibration-print-sheet table{width:100%;min-width:0}.calibration-plan-template{font-size:6.5pt}.calibration-plan-template th,.calibration-plan-template td{height:8mm;padding:1mm}.calibration-plan-mark.planned{background:#d9d9d9!important}.calibration-plan-mark.actual{background:#b7e1cd!important}.calibration-plan-mark.failed{background:#f4cccc!important}.calibration-plan-mark.repair{background:#fff2cc!important}.calibration-plan-mark.scrapped{background:#d9d9d9!important}.calibration-plan-document-header{color:#000;border-color:#000}.calibration-screen-only{display:none!important}.modal-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;margin:0!important;padding:0!important;display:block!important;position:static!important}.modal{color:#000!important;width:100%!important;max-width:100%!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}.modal-header,.modal-footer,.modal-close,.sidebar,.header,.btn,button{display:none!important}.official-report-sheet{color:#000!important;page-break-inside:avoid!important;page-break-after:avoid!important;break-after:avoid!important;background:#fff!important;width:100%!important;max-height:195mm!important;margin:0!important;padding:0!important;overflow:hidden!important}}.badge{letter-spacing:.02em;text-transform:uppercase;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-ok,.badge-approved{color:#10b981!important;background:#10b98126!important;border:1px solid #10b9814d!important}.badge-out-of-spec,.badge-ooc,.badge-rejected,.badge-error{color:#ef4444!important;background:#ef444426!important;border:1px solid #ef44444d!important}.badge-pending,.badge-pending-review{color:#f59e0b!important;background:#f59e0b26!important;border:1px solid #f59e0b4d!important}.badge-in-progress,.badge-progress{color:#3b82f6!important;background:#3b82f626!important;border:1px solid #3b82f64d!important}
