body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.Sidebar{background-color:#1b2b3b;display:flex;flex-direction:column;height:100vh;padding:0;transition:width .3s;width:180px}.Sidebar ul{color:#fff;font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif;font-size:1.5em;margin-top:0}.SidebarList{flex:1 1;height:auto;list-style-type:none;margin:0;padding:.2em 0 0;width:100%}.Sidebar .row{list-style:none;margin:0;padding:0}.Sidebar .row>a{align-items:center;box-sizing:border-box;color:inherit;display:flex;gap:10px;justify-content:flex-start;line-height:1.2;min-height:40px;padding:.6em .2rem;text-decoration:none;width:100%}.Sidebar .row>a:hover{cursor:pointer}.Sidebar .active>a,.Sidebar .row>a:hover{background-color:#0d1a27}.row #icon{align-items:center;display:flex;flex-shrink:0;justify-content:center}.row #title{flex:1 1;text-align:left}.Menu{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:1.5em;height:40px;justify-content:center;width:100%}.Sidebar.Sidebar-Responsive{width:35px}.Sidebar.Sidebar-Responsive #title{display:none}.Sidebar:not(.Sidebar-Responsive) .row #icon{width:30px}.Sidebar.Sidebar-Responsive .row>a{justify-content:center}.Sidebar.Sidebar-Responsive .row #icon{width:auto}.SidebarProfile{border-top:1px solid #ffffff14;padding:.5rem .2rem .7rem;position:relative}.SidebarProfileBtn{align-items:center;background:#0000;border:none;border-radius:6px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;font-size:1.5em;gap:10px;min-height:40px;padding:.6em .2rem;width:100%}.SidebarProfileBtn:hover{background-color:#0d1a27}.SidebarProfileMenu{background:#fff;border:1px solid #dcdfe3;border-radius:6px;bottom:.6rem;box-shadow:0 10px 30px #00000026;color:#1b2b3b;left:calc(100% + 6px);min-width:140px;padding:.25rem;position:absolute;z-index:10}.SidebarProfileMenu button{align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;font-size:.95rem;gap:8px;padding:.55rem .75rem;text-align:left;width:100%}.SidebarProfileMenu button:hover{background:#f2f4f7}.SidebarProfileMenuLogout{color:#d9534f;font-weight:600}.SidebarProfileMenuLogout:hover{background:#fdecea}.Sidebar.Sidebar-Responsive .SidebarProfileMenu{left:calc(100% + 6px);right:auto}.Sidebar.Sidebar-Responsive .SidebarProfile #title{display:none}.contact-info-container{border:1px solid #ccc;box-sizing:border-box;display:flex;flex-direction:column;font-family:sans-serif;gap:.3rem;height:calc(100vh - 2rem);overflow:hidden;padding:1rem}.contact-info-container.cannot-contact{background-color:#fff;border-color:#e6d8b8}.contact-header{display:flex;gap:1rem;justify-content:space-between}.contact-company,.contact-name{display:flex;flex:1 1;flex-direction:column}.contact-links,.contact-tags{align-items:center;display:flex;gap:.5rem}.contact-links{flex-wrap:wrap;margin-top:.3rem}.link-tag{align-items:center;background-color:#e0e0e0;border-radius:4px;color:#000;cursor:pointer;display:inline-flex;font-size:.8rem;gap:.3rem;padding:.2rem .5rem;position:relative;transition:padding-right .15s ease}.link-tag:hover{background-color:#d5d5d5;padding-right:1.5rem}.link-edit-btn{align-items:center;border-radius:50%;cursor:pointer;font-size:.75rem;height:1.1rem;justify-content:center;opacity:0;pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:opacity .15s ease;width:1.1rem}.link-tag:hover .link-edit-btn{opacity:1;pointer-events:auto}.link-add{background-color:#e0e0e0;color:#000}.link-edit-btn{display:inline-flex}.tag{background-color:#e0e0e0;border-radius:4px;font-size:.8rem;line-height:1.2;padding:.2rem .5rem}.tag.tag-removable{align-items:center;display:inline-flex;gap:.35rem;padding-right:.5rem;position:relative;transition:padding-right .15s ease}.tag.tag-removable:hover{padding-right:1.5rem}.tag-remove{align-items:center;background:#f8d7da;border:none;border-radius:50%;color:#7f1d1d;cursor:pointer;display:inline-flex;font-size:.8rem;height:1.1rem;justify-content:center;line-height:1;opacity:0;pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:opacity .15s ease;width:1.1rem}.tag.tag-removable:hover .tag-remove{opacity:1;pointer-events:auto}.tag.add-tag{background-color:#e0f2fe;color:#3b82f6;cursor:pointer;font-weight:700;transition:background-color .2s ease}.tag.add-tag:hover{background-color:#b0d8ff}.tag.add-tag.link-add{background-color:#fff3cd;border:1px solid #ffe08a;color:#856404}.tag.add-tag.link-add:hover{background-color:#ffe69c}.contact-section-header{font-size:.9rem;font-weight:700;margin-bottom:.2rem;margin-top:.3rem}.contact-body{align-items:stretch;display:flex;gap:2rem;margin-top:.2rem}.contact-left,.contact-right{display:flex;flex:1 1;flex-direction:column;gap:.3rem}input,textarea{border:1px solid #aaa;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:.3rem;width:100%}textarea{min-height:60px;resize:vertical}.auto-resize-textarea{height:auto;line-height:1.3;min-height:60px;overflow:hidden;resize:none}.auto-resize-textarea.disabled-event{background-color:#f5f5f5;color:#999;cursor:not-allowed;opacity:.6}.auto-resize-textarea.disabled-event::placeholder{color:#999;font-style:italic}.calendar-container{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.event-info-row{display:flex;gap:1rem;margin-top:1rem}.event-info{display:flex;flex:1 1;flex-direction:column}.info-details-wrapper{display:flex;gap:1rem;margin-top:.2rem}.customer-info,.event-details{display:flex;flex:1 1;flex-direction:column}.readonly-field{background-color:#f9f9f9;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;font-size:.9rem;justify-content:space-between;padding:.3rem}.edit-icon,.readonly-field{align-items:center;display:flex}.edit-icon{cursor:pointer}.divider{background-color:#ccc;height:1.2rem;margin:0 .5rem;width:1px}.icon{font-size:1rem}.tag-input{box-sizing:border-box;font-size:.8rem;line-height:1.2rem}.tag-input:focus{background-color:#fff;border-color:#aaa;outline:none;width:120px}.add-tag-input-wrapper{border:1px solid #0000;transition:width .3s ease;width:0}.add-tag-input-wrapper:focus-within{background-color:#fff;border-color:#aaa;width:140px}.add-tag-confirm{width:1.6rem}.add-tag-combo{display:inline-block;position:relative}.tag-suggestions{background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 8px 18px #00000014;left:0;max-height:220px;overflow:auto;padding:4px;position:absolute;top:calc(100% + 4px);width:260px;z-index:10}.tag-suggestion{border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px}.tag-suggestion.active,.tag-suggestion:hover{background:#eaf2ff}.tag-suggestion-label{font-size:.9rem;font-weight:600;line-height:1.1rem}.tag-suggestion-desc{color:#555;font-size:.78rem}.tag-suggestion.empty,.tag-suggestion.hint{color:#666;cursor:default;font-size:.85rem}.add-tag-input-wrapper{align-items:center;background-color:#fff;border:1px solid #aaa;border-radius:4px;display:flex;max-height:1.21rem;overflow:hidden;transition:width .2s ease;width:180px}.add-tag-input-wrapper:focus-within{border-color:#777;width:260px}.tag-input{flex:1 1;outline:none;padding:0 .5rem}.add-tag-confirm,.tag-input{background:#0000;border:none;height:100%}.add-tag-confirm{align-items:center;border-left:1px solid #ccc;color:#3b82f6;cursor:pointer;display:flex;font-size:1rem;justify-content:center;transition:background-color .2s ease;width:2rem}.add-tag-confirm:hover{background-color:#e0f2fe}.input-with-status{align-items:center;display:flex;position:relative}.input-with-status input{border:1px solid #ccc;border-radius:4px;flex:1 1;font-family:sans-serif;padding:.5rem}.save-indicator{cursor:help;font-size:1.2rem;position:absolute;right:.5rem;-webkit-user-select:none;user-select:none}.save-indicator.saving{animation:pulse 1s ease-in-out infinite}.save-indicator.success{animation:fadeInOut 2s ease-in-out;color:#10b981}.save-indicator.error{animation:shake .3s ease-in-out;color:#ef4444}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.contact-events-section{display:none}.events-header{align-items:center;display:flex;flex-shrink:0;gap:1rem;justify-content:space-between}.events-header h3{color:#333;font-size:.95rem;margin:0}.toggle-past-events-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.75rem;padding:.4rem .8rem;white-space:nowrap}.toggle-past-events-btn:hover{background-color:#0056b3}.contact-events-list{background-color:#fafafa;border:1px solid #eee;border-radius:4px;flex:1 1;font-size:.85rem;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:0}.contact-event-item{border-bottom:1px solid #eee;display:flex;flex-direction:column;font-size:.8rem;gap:.2rem;padding:.5rem}.contact-event-item:last-child{border-bottom:none}.contact-event-item .event-date{color:#06c;font-size:.8rem;font-weight:700}.contact-event-item .event-title{color:#333;font-weight:500}.contact-event-item .event-desc{color:#666;font-size:.8rem;font-style:italic}.contact-events-list .no-events{color:#999;font-style:italic;padding:1rem;text-align:center}.contact-info-footer{border-top:1px solid #e0e0e0;display:flex;gap:1rem;justify-content:space-between;margin-top:auto;padding-top:1rem}.btn-delete{background-color:#f7f7f7;border:1px solid #d0d0d0;border-radius:5px;color:#b42318;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .8rem;transition:background-color .2s ease,box-shadow .2s ease,border-color .2s ease}.btn-delete:hover{background-color:#efefef;border-color:#c7c7c7;box-shadow:0 1px 4px #00000014}.toggle-contact-btn{background-color:#f7f7f7;border:1px solid #d0d0d0;border-radius:5px;color:#333;cursor:pointer;font-size:.85rem;font-weight:600;min-width:150px;padding:.45rem .9rem;transition:background-color .2s ease,box-shadow .2s ease,border-color .2s ease}.toggle-contact-btn.can-contact{background-color:#fff9e6;border-color:#f0c36d;color:#8a5a00}.toggle-contact-btn.can-contact:hover{background-color:#fff2cc;box-shadow:0 1px 4px #00000014}.toggle-contact-btn.cannot-contact{background-color:#f3fbf3;border-color:#9ad19a;color:#1f7a1f}.toggle-contact-btn.cannot-contact:hover{background-color:#e8f7e8;box-shadow:0 1px 4px #00000014}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;padding:2rem;text-align:center}.modal-content.modal-danger{border-left:4px solid #f44336}.modal-content h2{color:#333;font-size:1.5rem;margin:0 0 1rem}.modal-content p{color:#666;line-height:1.5;margin:0 0 1.5rem}.modal-actions{justify-content:center}.btn-cancel,.btn-confirm,.btn-delete-confirm{border:1px solid #d0d0d0;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600;min-width:110px;padding:.45rem .9rem;transition:background-color .2s ease,box-shadow .2s ease,border-color .2s ease}.btn-cancel{background-color:#f7f7f7;color:#333}.btn-cancel:hover{background-color:#efefef}.btn-confirm{background-color:#f3fbf3;border-color:#9ad19a;color:#1f7a1f}.btn-confirm:hover{background-color:#e8f7e8}.btn-delete-confirm{background-color:#f7f7f7;color:#b42318}.btn-delete-confirm:hover{background-color:#efefef}.mini_calendar-container{background-color:#fafafa;border:1px solid #ccc;border-radius:6px;display:flex;flex-direction:column;flex-grow:1;font-family:sans-serif;gap:.5rem;padding:.8rem}.mini_calendar-header{align-items:center;display:flex;font-size:1rem;font-weight:700;justify-content:space-between}.mini_calendar-header button{background-color:#e0e0e0;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.3rem .5rem}.mini_calendar-grid{grid-gap:.2rem;flex-grow:1;gap:.2rem}.mini_calendar-cell{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;display:flex;font-size:.85rem;justify-content:center;text-align:center}.mini_calendar-cell.mini_other-month{background-color:#f0f0f0;color:#999}.mini_calendar-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(7,1fr);margin-top:1rem}.mini_weekday-header{background-color:#eee;font-weight:700;padding:.5rem;text-align:center}.mini_date-number{font-weight:700;margin-bottom:.25rem}.mini_event-list{color:#333;font-size:.85rem}.mini_event{background-color:#dff0d8;border-radius:4px;margin-top:4px;padding:2px 4px}.mini_calendar-cell.today{border:2px solid #3b82f6}.mini_calendar-cell.has-event{background-color:#e0f2fe}.mini_calendar-cell.has-event-cannot-contact{background-color:#ffcccb}.mini_calendar-cell.selected{background-color:#e0f2fe}.edit-modal-overlay{align-items:center;background:#00000080;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.edit-modal-content{background:#fff;border-radius:8px;box-shadow:0 0 20px #0000004d;max-height:85vh;max-width:500px;padding:1rem;position:relative;width:90%}.edit-modal-content h2{margin-bottom:.5rem;margin-top:0}.edit-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.edit-modal-close{background:none;border:none;cursor:pointer;font-size:1.2rem}.edit-modal-body{display:flex;flex-direction:column;gap:1rem;max-height:calc(85vh - 100px);overflow-y:auto;padding-right:.5rem}.edit-modal-body::-webkit-scrollbar{width:6px}.edit-modal-body::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:3px}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem}.cancel-btn,.save-btn{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.save-btn{background-color:#007bff}.cancel-btn{background-color:#e0e0e0}.checkbox-option{align-items:center;background-color:#fdfdfd;border:1px solid #ccc;border-radius:6px;box-shadow:0 0 2px #0000000d;display:flex;font-size:.95rem;gap:.5rem;justify-content:space-between;margin:0;padding:.6rem 1rem}.checkbox-option span{flex-grow:1;font-size:.95rem}.checkbox-option .checkbox-wrapper{align-items:center;display:flex;gap:.5rem}.checkbox-option .divider{background-color:#ccc;height:1.2rem;width:1px}.tag-modal-overlay{align-items:center;background:#1414148c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2000}.tag-modal-container{background:#fff;border-radius:10px;box-shadow:0 12px 28px #00000040;display:flex;flex-direction:column;max-width:95vw;overflow:hidden;width:480px}.tag-modal-header{align-items:center;background:#f7f7f7;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:.8rem 1rem}.tag-modal-header h3{font-size:1.1rem;font-weight:600;margin:0}.tag-modal-close{background:#0000;border:none;color:#444;cursor:pointer;font-size:1.2rem}.tag-modal-close:hover{color:#000}.tag-modal-body{padding:1rem}.tag-modal-body,.tag-modal-form{display:flex;flex-direction:column}.tag-modal-form{gap:.75rem}.tag-modal-row{display:flex;flex-direction:column;gap:.35rem}.tag-modal-input,.tag-modal-textarea{background:#fff;border:1px solid #bbb;border-radius:6px;font-size:.9rem;padding:.5rem .6rem;width:100%}.tag-modal-input:focus,.tag-modal-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f62e;outline:none}.tag-modal-type.fullwidth{display:flex;width:100%}.tag-type-option{background:#f9f9f9;border:1px solid #c9c9c9;cursor:pointer;flex:1 1;font-size:.9rem;padding:.6rem .7rem;transition:background .15s,border-color .15s}.tag-type-option:first-child{border-radius:8px 0 0 8px}.tag-type-option:last-child{border-radius:0 8px 8px 0}.tag-type-option:hover{background:#f0f5ff;border-color:#9db7ff}.tag-type-option.selected{background:#eaf2ff;border-color:#3b82f6}.tag-modal-type-label{font-weight:600;margin-bottom:.25rem}.tag-modal-checkmark-extra{align-items:center;background:#f7faff;border-radius:8px;display:flex;padding:.6rem .5rem}.switch{align-items:center;cursor:pointer;display:inline-flex;font-size:.9rem;gap:.6rem;position:relative}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:20px;height:20px;position:relative;transition:.3s;width:38px}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:14px;left:3px;position:absolute;transition:.3s;width:14px}.switch input:checked+.slider{background-color:#3b82f6}.switch input:checked+.slider:before{transform:translateX(18px)}.switch-label{font-weight:500}.tag-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.tag-modal-btn{background:#fff;border:1px solid #c9c9c9;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.45rem .9rem}.tag-modal-btn.primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.tag-modal-btn.primary:disabled{cursor:not-allowed;opacity:.55}.tag-modal-btn.ghost:hover{background:#f3f4f6}.link-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.link-modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;overflow:hidden;width:90%}.link-modal-header{align-items:center;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:.8rem 1rem}.link-modal-header h2{color:#333;font-size:1rem;margin:0}.link-modal-close{background:none;border:none;color:#999;cursor:pointer;font-size:1.2rem}.link-modal-close:hover{color:#333}.link-modal-body{display:flex;flex-direction:column;gap:.7rem;padding:1rem}.link-modal-body label{color:#333;font-size:.9rem;font-weight:500;margin-bottom:.15rem}.link-modal-body input{border:1px solid #ccc;border-radius:4px;font-size:.9rem;padding:.4rem}.link-modal-actions{display:flex;gap:.4rem;margin-top:.8rem}.link-modal-actions button{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:.85rem;padding:.4rem .8rem}.save-btn{background-color:#28a745;color:#fff}.save-btn:hover{background-color:#218838}.cancel-btn{background-color:#6c757d;color:#fff}.cancel-btn:hover{background-color:#5a6268}.delete-btn{background-color:#dc3545;color:#fff}.delete-btn:hover{background-color:#c82333}.search-bar{align-items:center;background-color:#fff;border-bottom:1px solid #ddd;display:flex;flex-shrink:0;gap:.2rem;padding:0 0 .5rem}.search-bar,.search-bar input{box-sizing:border-box;width:100%}.search-bar input{border:1px solid #ccc;border-radius:4px;font-size:1rem;margin-right:.5rem;padding:.4rem .6rem}.button-group{display:flex;flex-shrink:0;gap:.5rem;width:14rem}.action-button{background-color:#007bff;border:none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;flex:1 1;font-size:.95rem;padding:.4rem .6rem;text-align:center;transition:background-color .2s ease;white-space:nowrap}.action-button:hover{background-color:#0056b3}.search-input-wrapper{align-items:center;display:flex;flex:1 1;gap:.4rem;position:relative}.search-btn{background-color:#17a2b8}.search-btn:hover{background-color:#11707f}.typeahead-dropdown{max-height:320px}.typeahead-item{padding:.5rem .75rem}.typeahead-item.cannot-contact{background-color:#ffcccb}.typeahead-item.cannot-contact.active,.typeahead-item.cannot-contact:hover{background-color:#f99}.typeahead-item.empty{color:#888;font-style:italic;text-align:center}.ti-name{color:#333}.typeahead-item{border-bottom:1px solid #eee;cursor:pointer;display:flex;flex-direction:column;font-size:.95rem;gap:.25rem;padding:.55rem .75rem}.typeahead-item:last-child{border-bottom:none}.typeahead-item.active,.typeahead-item:hover{background-color:#f0f8ff}.typeahead-footer{color:#666;font-size:.9rem;padding:.5rem .75rem;text-align:center}.typeahead-footer.end{color:#999}.ti-row{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.ti-main{flex:1 1;min-width:0}.ti-name{color:#222;font-weight:600;line-height:1.2}.ti-meta,.ti-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ti-meta{align-items:center;color:#666;display:flex;font-size:.85rem;gap:.35rem}.ti-company,.ti-owner{max-width:18rem;overflow:hidden;text-overflow:ellipsis}.ti-dot{opacity:.6}.ti-method{align-items:center;color:#333;display:flex;flex-shrink:0;gap:.35rem}.ti-method-icon svg{height:1rem;width:1rem}.ti-event{align-items:center;color:#444;display:flex;flex-wrap:wrap;font-size:.85rem;gap:.5rem}.ti-badge{border:1px solid #0000;border-radius:999px;font-size:.75rem;line-height:1.2;padding:.1rem .4rem}.ti-badge.upcoming{background:#e8f7ee;border-color:#bde5c7;color:#1d7a3a}.ti-badge.past{background:#f3f4f6;border-color:#e5e7eb;color:#555}.ti-event-title{color:#333;font-weight:500;max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ti-event-date{color:#666}.typeahead-dropdown{background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 4px 8px #00000014;left:0;max-height:360px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 2px);z-index:20}.add-contact-modal-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.add-contact-modal{background:#fff;border:1px solid #ccc;border-radius:12px;box-shadow:0 18px 48px #0000002e;display:flex;flex-direction:column;max-height:94vh;overflow:hidden;width:min(1100px,96vw)}.add-contact-header-empty{background:#fafafa;border-bottom:1px solid #eee;height:8px}.add-contact-body{overflow:auto;padding:.8rem 1rem 1rem}.add-contact-info-container{box-sizing:border-box;display:flex;flex-direction:column;gap:.3rem;height:calc(88vh - 7rem);overflow:hidden;padding:.2rem}.add-contact-contact-header{display:flex;gap:1rem;justify-content:space-between}.add-contact-contact-company,.add-contact-contact-name{display:flex;flex:1 1;flex-direction:column}.add-contact-contact-company input,.add-contact-contact-name input{border:1px solid #aaa;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:.3rem;width:100%}.add-contact-contact-tags{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.add-contact-tag{background-color:#e0e0e0;border-radius:4px;font-size:.8rem;line-height:1.2;padding:.2rem .5rem}.add-contact-tag.add-contact-add-tag{align-items:center;background-color:#e0f2fe;color:#3b82f6;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:400;height:1.3rem;justify-content:center;line-height:1;min-width:1.3rem;padding:0;transition:background-color .2s ease}.add-contact-tag.add-contact-add-tag:hover{background-color:#b0d8ff}.add-contact-tag.tag{background-color:#e0e0e0;border-radius:4px;color:#000;font-size:.8rem;gap:.3rem;padding:.2rem .5rem}.add-contact-tag.tag,.add-contact-tag.tag-removable{align-items:center;display:inline-flex;position:relative}.add-contact-tag.tag-removable{gap:.35rem;padding-right:.5rem;transition:padding-right .15s ease}.add-contact-tag.tag-removable:hover{padding-right:1.5rem}.add-contact-tag-remove{align-items:center;background:#f8d7da;border:none;border-radius:50%;color:#7f1d1d;cursor:pointer;display:inline-flex;font-size:.8rem;height:1.1rem;justify-content:center;line-height:1;opacity:0;pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:opacity .15s ease;width:1.1rem}.add-contact-tag.tag-removable:hover .add-contact-tag-remove{opacity:1;pointer-events:auto}.add-contact-add-tag-input-wrapper{align-items:center;border:1px solid #0000;border-radius:4px;display:inline-flex;overflow:hidden;position:relative;transition:width .3s ease;width:0}.add-contact-add-tag-input-wrapper:focus-within{background-color:#fff;border-color:#aaa;width:140px}.add-contact-tag-input{background:#0000;border:none;box-sizing:border-box;flex:1 1;font-size:.8rem;height:100%;line-height:1.2rem;outline:none;padding:0 .5rem}.add-contact-tag-input:focus{background-color:#fff;border-color:#aaa;width:120px}.add-contact-add-tag-confirm{align-items:center;background:#0000;border:none;border-left:1px solid #ccc;color:#3b82f6;cursor:pointer;display:flex;font-size:1rem;height:100%;justify-content:center;transition:background-color .2s ease;width:1.6rem}.add-contact-add-tag-confirm:hover{background-color:#e0f2fe}.add-contact-tag-dropdown{background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 8px 18px #00000014;left:0;max-height:220px;overflow:auto;padding:4px;position:absolute;top:calc(100% + 4px);width:260px;z-index:10}.add-contact-tag-dropdown-item{border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px;transition:background-color .2s ease}.add-contact-tag-dropdown-item:hover{background:#eaf2ff}.add-contact-contact-body{display:flex;gap:2rem;margin-top:.2rem;min-height:300px}.add-contact-contact-left,.add-contact-contact-right{display:flex;flex:1 1;flex-direction:column;gap:.35rem;padding-left:.4rem;width:0}.add-contact-contact-left input,.add-contact-contact-left textarea,.add-contact-contact-right input,.add-contact-contact-right textarea{border:1px solid #aaa;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:.3rem}.add-contact-contact-left textarea,.add-contact-contact-right textarea{min-height:60px;resize:vertical}.add-contact-pills-scroll{-webkit-overflow-scrolling:touch;max-height:8rem;overflow-x:hidden;overflow-y:auto}.add-contact-pills-row{column-gap:.35rem;display:flex;flex-wrap:wrap;min-height:2.1rem;padding-bottom:.2rem;row-gap:.25rem}.add-contact-pills-scroll::-webkit-scrollbar{height:8px;width:8px}.add-contact-pills-scroll::-webkit-scrollbar-thumb{background:#c7d2fe;border-radius:4px}.add-contact-pills-scroll::-webkit-scrollbar-track{background:#eef2ff}.add-contact-pill{background:#f9f9f9;border:1px solid #aaa;border-radius:16px;color:#222;cursor:pointer;font-size:.85rem;padding:.25rem .6rem;white-space:nowrap}.add-contact-pill:hover{background:#eef6ff;border-color:#90c2ff}.add-contact-pill.active{background:#dbeafe;border-color:#60a5fa}.add-contact-pill.add-pill-btn{background-color:#e0f2fe;border-color:#3b82f6;color:#3b82f6;font-weight:700}.add-contact-pill.add-pill-btn:hover{background-color:#b0d8ff}.add-contact-inline-input{align-items:center;background:#fff;border:1px solid #aaa;border-radius:16px;display:inline-flex;gap:.3rem;padding:.15rem .4rem}.add-contact-inline-input input{background:#0000;border:none;font-size:.85rem;outline:none;padding:.1rem .3rem;width:120px}.add-contact-inline-input button{align-items:center;background:#e0f2fe;border:none;border-radius:50%;color:#3b82f6;cursor:pointer;display:flex;font-size:1rem;height:1.5rem;justify-content:center;transition:background-color .2s ease;width:1.5rem}.add-contact-inline-input button:hover{background-color:#b0d8ff}.add-contact-contact-links{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}.add-contact-contact-links .tag{align-items:center;background-color:#e0e0e0;border-radius:4px;color:#000;display:inline-flex;font-size:.8rem;gap:.3rem;padding:.2rem .5rem;position:relative;transition:padding-right .15s ease}.add-contact-contact-links .tag:hover{background-color:#d5d5d5;padding-right:1.5rem}.add-contact-contact-links .tag-removable{align-items:center;display:inline-flex;gap:.35rem;padding-right:.5rem;position:relative;transition:padding-right .15s ease}.add-contact-contact-links .tag-removable:hover{padding-right:1.5rem}.add-contact-contact-links .tag-remove{align-items:center;background:#f8d7da;border:none;border-radius:50%;color:#7f1d1d;cursor:pointer;display:inline-flex;font-size:.8rem;height:1.1rem;justify-content:center;line-height:1;opacity:0;pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);transition:opacity .15s ease;width:1.1rem}.add-contact-contact-links .tag-removable:hover .tag-remove{opacity:1;pointer-events:auto}.add-contact-contact-links .add-tag{align-items:center;background-color:#fff3cd;border:1px solid #ffe08a;color:#856404;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:400;height:1.3rem;justify-content:center;line-height:1;min-width:1.3rem;padding:0;transition:background-color .2s ease}.add-contact-contact-links .add-tag:hover{background-color:#ffe69c}.add-contact-add-link-wrapper{align-items:center;background:#fff;border:1px solid #fbbf24;border-radius:16px;display:inline-flex;gap:.3rem;padding:.15rem .4rem}.add-contact-add-link-wrapper input{background:#0000;border:none;font-size:.85rem;outline:none;padding:.1rem .3rem}.add-contact-add-link-wrapper input:first-child{width:100px}.add-contact-add-link-wrapper input:last-of-type{width:140px}.add-contact-add-link-wrapper button{align-items:center;background:#fef3c7;border:none;border-radius:50%;color:#92400e;cursor:pointer;display:flex;font-size:1rem;height:1.5rem;justify-content:center;transition:background-color .2s ease;width:1.5rem}.add-contact-add-link-wrapper button:hover{background-color:#fcd34d}.add-contact-info-details-wrapper{display:flex;gap:1rem;margin-top:.2rem}.add-contact-customer-info,.add-contact-event-details{display:flex;flex:1 1;flex-direction:column}.add-contact-customer-info textarea,.add-contact-event-details textarea{border:1px solid #aaa;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:.3rem;resize:vertical;width:100%}.add-contact-footer{align-items:center;border-top:1px solid #eee;display:flex;gap:.8rem;justify-content:space-between;margin-top:.8rem;padding-top:.8rem}.add-contact-btn{border:1px solid #0000;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.55rem .9rem}.add-contact-btn.primary{background:#007bff;border-color:#007bff;color:#fff}.add-contact-btn.primary:hover{background:#005ed1;border-color:#005ed1}.add-contact-btn.secondary{background:#fff;border:1px solid #d0d7de;color:#0f1720}.add-contact-btn.secondary:hover{border-color:#b8c6d3}@media (max-width:900px){.add-contact-contact-body{flex-direction:column}}.add-contact-contact-body{align-items:stretch}.add-contact-contact-right{min-height:0}.add-contact-calendar-flex{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.add-contact-calendar-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding-left:.25rem}.add-contact-calendar-scroll .mini_calendar-cell{height:1.6rem}.filter-modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.filter-modal{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #00000026;color:#333;display:flex;flex-direction:column;max-height:86vh;overflow:hidden;width:min(640px,92vw)}.filter-modal-header{align-items:center;background:#f9f9f9;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1rem}.filter-modal-header h2{color:#333;font-size:1.3rem;margin:0}.filter-modal-body{grid-gap:.7rem;display:grid;gap:.7rem;overflow:auto;padding:1rem}.filter-modal-footer{background:#f9f9f9;border-top:1px solid #e0e0e0;display:flex;gap:.8rem;justify-content:flex-end;padding:.8rem 1rem}.filter-label{grid-gap:.3rem;color:#333;display:grid;font-size:.9rem;font-weight:500;gap:.3rem}.filter-input,.filter-select,.filter-textarea{background:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;color:#333;font-family:sans-serif;font-size:.9rem;padding:.5rem .6rem}.filter-input::placeholder{color:#999}.filter-input:focus,.filter-select:focus,.filter-textarea:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a;outline:none}.filter-grid-2{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:1fr 1fr}@media (max-width:640px){.filter-grid-2{grid-template-columns:1fr}}.filter-checkbox{align-items:center;color:#333;cursor:pointer;display:flex;font-size:.95rem;gap:.6rem;-webkit-user-select:none;user-select:none}.filter-checkbox input[type=checkbox]{accent-color:#4caf50;cursor:pointer;height:18px;width:18px}.filter-checkbox-inline{align-items:center;color:#333;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.3rem 0;-webkit-user-select:none;user-select:none}.filter-checkbox-inline input[type=checkbox]{accent-color:#4caf50;cursor:pointer;height:16px;width:16px}.filter-multiselect{background:#fff;border:1px solid #ccc;border-radius:4px;max-height:150px;overflow-y:auto;padding:.6rem}.filter-multiselect,.filter-tag-input{display:flex;flex-direction:column;gap:.4rem}.filter-tag-list{display:flex;flex-wrap:wrap;gap:.4rem;padding:.4rem 0}.filter-tag-chip{align-items:center;background:#4caf50;border-radius:16px;color:#fff;display:inline-flex;font-size:.85rem;font-weight:500;gap:.4rem;padding:.4rem .8rem}.filter-tag-remove{align-items:center;background:none;border:none;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;line-height:1;padding:0}.filter-tag-remove:hover{opacity:.8}.filter-icon-button{-webkit-appearance:none;appearance:none;background:#0000;border:none;color:#999;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;transition:color .2s}.filter-icon-button:hover{color:#333}.filter-btn{border:1px solid #0000;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.6rem 1.2rem;transition:all .2s ease}.filter-btn.primary{background:#4caf50;color:#fff}.filter-btn.primary:hover{background:#45a049;box-shadow:0 2px 8px #4caf504d}.filter-btn.secondary{background:#fff;border-color:#ddd;color:#333}.filter-btn.secondary:hover{background:#f5f5f5;border-color:#bbb}.filter-tag-dropdown{background:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.filter-tag-dropdown-item{cursor:pointer;padding:.6rem .8rem;transition:background .15s}.filter-tag-dropdown-item:hover{background:#f0f0f0}.filter-tag-dropdown-item:active{background:#e8f5e9}.contacts-container{grid-gap:0;align-items:stretch;display:grid;gap:0;grid-template-columns:1fr;height:calc(100vh - 2rem)}.contacts-list-panel{display:flex;flex-direction:column;gap:0;height:100%;min-height:0;overflow:hidden}.contacts-toolbar{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;gap:.5rem;padding:.5rem}.filter-button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:.6rem 1rem;transition:background .2s;white-space:nowrap}.filter-button:hover{background:#45a049}.contacts-table{align-self:start;border-collapse:collapse;height:100%;table-layout:fixed;width:100%}.contacts-table td,.contacts-table th{height:23px;line-height:23px;max-height:23px;overflow:hidden;padding:.2rem .6rem;text-overflow:clip;white-space:nowrap}.contacts-table th{background-color:#f0f0f0}.contacts-table td{max-height:23px;overflow:auto;padding:0 .2rem .2rem}.contacts-table tr:hover{background-color:#f5f5f5;cursor:pointer}.contacts-table tr.selected{background-color:#e0f7fa}.contacts-table tr.cannot-contact{background-color:#ffcccb}.contacts-table tr.cannot-contact:hover{background-color:#f99}.contacts-table td:nth-child(3),.contacts-table td:nth-child(5),.contacts-table th:nth-child(3),.contacts-table th:nth-child(5){text-align:center;width:40px}.contacts-table td:nth-child(4),.contacts-table th:nth-child(4){text-align:center;width:90px}.table-wrapper{flex:1 1;min-height:0;overflow-y:auto}.table-wrapper::-webkit-scrollbar{width:8px}.table-wrapper::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background-color:silver;border:2px solid #f0f0f0;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background-color:#999}.contacts-table thead{background-color:#f0f0f0;position:-webkit-sticky;position:sticky;top:0;z-index:2}.contact-info-panel{background:#fff;height:100%;overflow-y:auto}.contacts-table td{max-width:200px;overflow-x:auto;overflow-y:hidden;text-overflow:clip;white-space:nowrap}.contacts-table td::-webkit-scrollbar{height:6px}.contacts-table td::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.contacts-table td::-webkit-scrollbar-thumb{background-color:silver;border-radius:4px}.contacts-table td::-webkit-scrollbar-thumb:hover{background-color:#999}.calendar-page{box-sizing:border-box;display:flex;flex-direction:column;height:calc(100vh - 2rem);overflow:hidden}.calendar-layout{grid-gap:1rem;display:grid;flex-grow:1;gap:1rem;height:100%;overflow:hidden}.calendar-left-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.calendar-layout.no-contact{grid-template-columns:4fr 1fr}.calendar-layout.with-contact{grid-template-columns:3fr 4fr}.split-right-panel{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:300px 1fr;overflow:hidden}.calendar-sidebar{background-color:#fff;border:1px solid #ccc;display:flex;flex-direction:column;overflow:auto;padding:1rem}.calendar-sidebar h3{color:#333;font-size:1rem;margin:0 0 1rem}.calendar-sidebar ul{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:0}.calendar-sidebar li{border-bottom:1px solid #eee;cursor:pointer;display:flex;flex-direction:column;font-size:.8rem;gap:.25rem;padding:.4rem .5rem}.calendar-sidebar li:hover{background-color:#f0f8ff}.calendar-sidebar li.no-events{color:#999;cursor:default}.calendar-section{background-color:#f9f9f9;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.calendar-header{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:.3rem}.calendar-title{font-size:1.2rem;font-weight:700}.calendar-grid{grid-gap:.2rem}.calendar-grid,.calendar-grid.days{display:grid;gap:.2rem;grid-template-columns:repeat(7,1fr)}.calendar-grid.days{grid-gap:.2rem;box-sizing:border-box;flex:1 1;grid-template-rows:repeat(6,1fr);height:auto;min-height:0}.weekdays{margin-bottom:.5rem}.weekday-header{background-color:#eee;font-weight:700;padding:0 .2rem;text-align:center}.days{flex-grow:1;height:auto}.calendar-cell,.days{display:flex;flex-direction:column;min-height:0}.calendar-cell{background-color:#fff;border:1px solid #ccc;min-width:0;overflow:hidden}.date-header{background-color:#eee;border-bottom:1px solid #ccc;flex-shrink:0;font-size:12px;font-weight:700;height:.9rem;overflow:hidden;padding-left:.3rem;text-align:left;text-overflow:ellipsis;white-space:nowrap}.event-list{flex-grow:1;overflow-y:auto;padding:.1rem;scrollbar-color:#0003 #0000;scrollbar-width:thin}.event-list::-webkit-scrollbar{width:4px}.event-list::-webkit-scrollbar-track{background:#0000}.event-list::-webkit-scrollbar-thumb{background-color:#0003;border-radius:2px}.calendar-event{background-color:#e0f2fe;border-left:4px solid #3b82f6;border-radius:4px;cursor:pointer;font-size:.75rem;margin:.1rem 0;overflow:hidden;padding:.1rem .2rem;text-overflow:ellipsis;transition:background-color .2s ease;white-space:nowrap}.calendar-event:hover{background-color:#bae6fd}.calendar-event.cannot-contact{background-color:#ffcccb;border-left-color:#d32f2f}.calendar-event.cannot-contact:hover{background-color:#f99}.sidebar-section{background-color:#fff;border:1px solid #ccc;display:flex;flex-direction:column;overflow:auto;padding:1rem}.sidebar-section h3{color:#333;font-size:1.2rem;margin:0 0 1rem}.toggle-past-events{align-self:flex-start;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;margin-bottom:1rem;padding:.5rem 1rem}.toggle-past-events:hover{background-color:#0056b3}.sidebar-section ul{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:0}.sidebar-section li{border-bottom:1px solid #eee;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;padding:.4rem .5rem}.sidebar-section li:hover{background-color:#f0f8ff}.sidebar-section li.no-events{color:#999;cursor:default}.event-item{font-size:.8rem;gap:.25rem!important;padding:.4rem .5rem!important}.event-date{color:#06c;font-size:.75rem;font-weight:600}.event-contact{color:#333;font-size:.85rem;font-weight:500}.event-desc{color:#666;font-size:.75rem;font-style:italic;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-cell.selected{background-color:#fff3cd;border:2px solid #ffc107}.bottom-events{background-color:#f1f1f1;border-top:1px solid #ccc;margin-top:.5rem;padding:.2rem}.calendar-column{flex:1 1;min-height:0}.calendar-column::-webkit-scrollbar{width:6px}.calendar-column::-webkit-scrollbar-track{border-radius:3px}.search-results-overlay{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 4px 8px #0000001a;left:1rem;max-height:300px;overflow-y:auto;position:absolute;right:1rem;top:3.2rem;z-index:1000}.search-result-item{border-bottom:1px solid #eee;cursor:pointer;padding:.5rem 1rem}.search-result-item:hover{background-color:#f0f8ff}.contacts-container.split{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:3fr 4fr;height:calc(100vh - 2rem);overflow:hidden}.login-container{align-items:center;background:#f4f6f8;display:flex;height:100vh;justify-content:center}.login-box{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;display:flex;flex-direction:column;gap:1rem;padding:2rem;width:300px}.login-box h2{margin:0 0 1rem;text-align:center}.login-box input{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.75rem}.login-box button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem}.login-box button:hover{background:#0056b3}body,html{height:100vh;margin:0;overflow:hidden;padding:0;width:100vw}
/*# sourceMappingURL=main.9115b258.css.map*/