.table-wrapper{flex:1;overflow-y:auto;overflow-x:auto;border:1px solid #e0e0e0;border-radius:8px;max-width:100%}table{width:100%;border-collapse:collapse;background-color:#fff}table thead{position:sticky;top:0;background-color:var(--primary-color-lighter);z-index:1;border-top:#999 2px solid}table th{padding:12px 5px;text-align:center;font-weight:700;color:var(--text-secondary);font-size:16px}table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:background-color .2s}table th.sortable:hover{background-color:var(--primary-color-lighter)}table th.sortable .sort-arrow{display:inline-block;margin-left:6px;font-size:16px;color:var(--font-color);opacity:.5;transition:opacity .2s}table th.sortable.active .sort-arrow,table th.sortable.sorted .sort-arrow{opacity:1;color:#1976d2}table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s;vertical-align:middle}table tbody tr:hover{background-color:#f9f9f9}table td{padding:12px 16px;font-size:14px;text-align:center;vertical-align:middle}table td .cell-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-break:break-word}table .no-data{text-align:center;color:#999;padding:40px;font-style:italic}.checkbox-column{width:40px;text-align:center;padding:8px!important}.checkbox-column input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin:0}table input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid #ccc;border-radius:4px;box-shadow:0 1px 4px #0000001f;cursor:pointer;transition:border-color .2s,box-shadow .2s,background-color .2s;vertical-align:middle;position:relative;flex-shrink:0}table input[type=checkbox]:checked{background-color:var(--primary-color-lighter);border-color:var(--primary-color);box-shadow:0 1px 4px var(--primary-color-lighter)}table input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:2px solid white;border-top:none;border-left:none;transform:rotate(45deg)}table input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px #1976d226}table input[type=checkbox]:hover:not(:checked){border-color:#aaa;box-shadow:0 1px 6px #0000002e}@media (max-width: 1000px){th.col-md,td.col-md,th.col-lg,td.col-lg,th.col-xl,td.col-xl{display:none}}@media (min-width: 1000px) and (max-width: 1199px){th.col-lg,td.col-lg,th.col-xl,td.col-xl{display:none}}@media (min-width: 1200px) and (max-width: 1615px){th.col-xl,td.col-xl{display:none}}.btn-close{background:none;border:none;font-size:32px;color:#666;cursor:pointer;line-height:1;padding:0;width:32px;height:32px}.btn-close:hover{color:#333}.btn-reject,.btn-cancel,.btn-delete,.btn-update,.btn-confirm,.btn-upload,.btn-download,.btn-export,.btn-add{padding:var(--icon-padding);width:var(--icon-width);height:var(--icon-height);position:relative;background-color:transparent}.btn-reject:disabled,.btn-cancel:disabled,.btn-delete:disabled,.btn-update:disabled,.btn-confirm:disabled,.btn-upload:disabled,.btn-download:disabled,.btn-export:disabled,.btn-add:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.btn-reject:disabled:before,.btn-cancel:disabled:before,.btn-delete:disabled:before,.btn-update:disabled:before,.btn-confirm:disabled:before,.btn-upload:disabled:before,.btn-download:disabled:before,.btn-export:disabled:before,.btn-add:disabled:before{opacity:.3}.btn-update:before,.btn-reject:before,.btn-cancel:before,.btn-delete:before,.btn-confirm:before,.btn-upload:before,.btn-download:before,.btn-add:before,.btn-export:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--icon-width);height:var(--icon-height);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.btn-delete:before{-webkit-mask-image:url(/images/trash-can.svg);mask-image:url(/images/trash-can.svg);background-color:coral}.btn-reject:before,.btn-cancel:before{-webkit-mask-image:url(/images/x-mark.svg);mask-image:url(/images/x-mark.svg);background-color:var(--secondary-color)}.btn-update:before{-webkit-mask-image:url(/images/edit-pencil.svg);mask-image:url(/images/edit-pencil.svg);background-color:#4a6fa5}.btn-confirm:before{-webkit-mask-image:url(/images/check-mark.svg);mask-image:url(/images/check-mark.svg);background-color:var(--primary-color)}.btn-upload:before{-webkit-mask-image:url(/images/upload.svg);mask-image:url(/images/upload.svg);background-color:var(--secondary-color)}.btn-download:before{-webkit-mask-image:url(/images/download.svg);mask-image:url(/images/download.svg);background-color:var(--secondary-color)}.btn-add:before{-webkit-mask-image:url(/images/plus-mark.svg);mask-image:url(/images/plus-mark.svg);background-color:var(--primary-color)}.btn-export:before{-webkit-mask-image:url(/images/export.svg);mask-image:url(/images/export.svg);background-color:var(--primary-color)}button{display:inline-flex;align-items:center;justify-content:center;padding:6px 16px;border:none;border-radius:var(--border-radius, 4px);font-size:13px;font-weight:700;cursor:pointer;transition:all .3s;text-transform:uppercase;background-color:var(--primary-button-color);color:var(--text-secondary);vertical-align:middle}button:hover{background-color:var(--primary-button-color-lighter)}button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.header-button-text{margin-left:8px;padding-top:2.5px;padding-bottom:2.5px}.button-group{display:flex;gap:12px}.action-buttons{display:flex;gap:8px;white-space:nowrap;justify-content:left;align-items:center}.btn-tab{background:var(--primary-color-lighter);color:#fff;font-weight:bolder;padding:15px;border-radius:5px 5px 0 0;border-width:1pt;border-style:solid;border-bottom:0pt}.btn-tab.active,.btn-tab:hover{background:#fff;color:var(--primary-color)}.header-container{display:flex;justify-content:space-between;width:100%}.header-buttons-container{width:100%}.header-button{float:right;margin-left:10px;vertical-align:middle;padding:10px 20px;background-color:var(--primary-color-lighter);color:var(--text-secondary)}.btn-big{padding:12px 24px;width:calc(3 * var(--icon-width));height:calc(3 * var(--icon-height));border:var(--secondary-color-much-lighter) dashed 1px;border-color:var(--secondary-color-much-lighter);border-radius:5px}.btn-big:before{width:calc(2.5 * var(--icon-width));height:calc(2.5 * var(--icon-height))}.badge,.status-badge,.type-badge,.role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.type-person,.status-badge.status-new{background-color:#e3f2fd;color:#1976d2}.type-company,.status-badge.status-planned{background-color:#f3e5f5;color:#7b1fa2}.status-badge.status-confirmed{background-color:#fff3e0;color:#f57c00}.status-badge.status-ontheway{background-color:#e8f5e9;color:#388e3c}.status-badge.status-done{background-color:#c8e6c9;color:#2e7d32}.status-badge.status-rejected{background-color:#fce4ec;color:#c2185b}.status-badge.status-cancelled{background-color:#ffebee;color:#c62828}.page-container{padding:24px;margin:0 auto}.header-section{display:flex;flex-direction:column;justify-content:space-between;align-items:center;margin-bottom:24px}.header-section h1{margin:0;color:#333;font-size:28px}.loading,.error{display:flex;align-items:center;justify-content:center;padding:40px;color:#666}.error{color:#f44336;background-color:#ffebee;border-radius:var(--border-radius, 4px)}.contacts-count,.users-count,.vehicles-count,.orders-count{margin-top:16px;padding:12px;background-color:#f5f5f5;border-radius:var(--border-radius, 4px);text-align:center;font-size:14px;color:#666;font-weight:500}.contact-name,.user-email,.license-plate{font-weight:600;color:#333}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;width:90%;max-height:90vh;overflow-y:auto}.modal-header{position:sticky;top:0;background-color:#fff;z-index:10;padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;color:#333;font-size:20px;font-weight:600}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e0e0e0}.modal-buttons{position:sticky;bottom:0;background-color:#fff;display:flex;gap:12px;justify-content:flex-end;padding:16px 0 0}.form-row.two-columns{display:grid;grid-template-columns:1fr 1fr}.form-row.three-columns{display:grid;grid-template-columns:1fr 1fr 1fr}.form-row.four-columns{display:grid;grid-template-columns:1fr 1fr 1fr 1fr}.form-hint{margin-top:4px;font-size:12px;color:#666;font-style:italic}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1 / -1;margin-bottom:16px}.form-group label{margin-top:6px;margin-bottom:6px;font-weight:700;color:#333;font-size:14px}.form-group input:not([type=checkbox]),.form-group select,.form-group textarea,.form-control{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.form-group select,select.form-control{border-radius:4px 4px 0 0;box-shadow:0 2px 4px #2aa9a940}.form-group input:not([type=checkbox]):focus,.form-group select:focus,.form-group textarea:focus,.form-control:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-group input:not([type=checkbox]).ng-invalid.ng-touched,.form-group select.ng-invalid.ng-touched,.form-group textarea.ng-invalid.ng-touched{border-color:#e53935;box-shadow:0 0 0 3px #e5393526}.form-section{padding:20px;border-bottom:1px solid lightgray}.form-section h4{margin:0 0 16px;color:#333;font-size:16px;font-weight:600;padding-bottom:8px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h4{margin:0}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.input-with-button{display:flex;gap:6px;align-items:center}.input-with-button .form-control{flex:1}.user-form,.contact-form{padding:24px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}:root{--primary-color: #0E7C86;--primary-color-lighter: #2aa9a9;--secondary-color: #A77BCA;--secondary-color-darker: #8a62a8;--secondary-color-lighter: #B88DD6;--secondary-color-much-lighter: #CFB1E6;--secondary-color-much-lighter2: #e5c7fd;--primary-button-color: #2aa9a9;--primary-button-color-lighter: #2aa9a9;--background-color: white;--surface-color: #2aa9a9;--text-primary: #0E7C86;--text-secondary: #FDF2F0;--border-color: #ddd;--success-color: #4CAF50;--warning-color: #FF9800;--error-color: #f44336;--info-color: #2196F3;--font-family: Oswald, sans-serif;--font-size-base: 16px;--font-size-sm: 14px;--font-size-lg: 18px;--font-size-xl: 24px;--border-radius: 4px;--border-radius-lg: 8px;--icon-width: 25px;--icon-height: 25px;--icon-padding: 15px}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--background-color);line-height:1.5}nav{color:var(--text-primary)}h2{text-align:center}input:not([type=checkbox]),textarea{box-shadow:inset 0 2px 4px #0000001a}select{border-radius:4px 4px 0 0;box-shadow:0 2px 4px #2aa9a940}label{font-weight:700}.in-text-icon{display:inline-block;width:20px;height:20px;background-color:var(--surface-color);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;flex-shrink:0;transition:background-color .5s}.in-text-icon-inverted{display:inline-block;width:20px;height:20px;background-color:var(--text-secondary);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;flex-shrink:0;transition:background-color .5s}.menu-item:hover .in-text-icon,.menu-item.active .in-text-icon{background-color:var(--background-color)}.alert-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .2s ease-in-out}.alert-dialog{background-color:#fff;border-radius:var(--border-radius-lg);box-shadow:0 4px 20px #0000004d;min-width:300px;max-width:500px;padding:0;font-family:var(--font-family);animation:slideIn .2s ease-in-out;border-left:4px solid var(--info-color)}.alert-message{padding:24px;font-size:var(--font-size-base);color:var(--text-primary);line-height:1.5;text-align:left;white-space:pre-line}.alert-buttons{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background-color:#f5f5f5;border-bottom-left-radius:var(--border-radius-lg);border-bottom-right-radius:var(--border-radius-lg)}.alert-button{padding:10px 20px;font-size:var(--font-size-base);font-family:var(--font-family);font-weight:600;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease-in-out}.alert-button-confirm{background-color:var(--primary-color);color:#fff}.alert-button-confirm:hover{background-color:var(--primary-color-lighter);transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.alert-button-cancel{background-color:#e0e0e0;color:var(--text-primary)}.alert-button-cancel:hover{background-color:#d0d0d0}.alert-dialog.alert-success{border-left-color:var(--success-color)}.alert-dialog.alert-warning{border-left-color:var(--warning-color)}.alert-dialog.alert-error{border-left-color:var(--error-color)}.alert-dialog.alert-info{border-left-color:var(--info-color)}.sdk-example-pin{position:relative;border-radius:12px;background-color:var(--secondary-color);color:#fff;padding:4px 10px;font-size:11px;font-weight:600;font-family:var(--font-family);white-space:nowrap;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:box-shadow .15s,background-color .15s}.sdk-example-pin:hover{background-color:var(--secondary-color-darker);box-shadow:0 2px 6px #0000004d,0 0 0 3px var(--secondary-color-much-lighter)}.sdk-example-pin:after{position:absolute;content:"";width:0;height:0;bottom:-16px;left:50%;transform:translate(-50%);border:10px solid transparent;border-top:16px solid var(--secondary-color)}.sdk-example-pin:hover:after{border-top-color:var(--secondary-color-darker)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox],.template-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.toggle-switch{display:inline-block;flex-shrink:0;position:relative;width:44px;height:24px;background-color:#ccc;border-radius:12px;cursor:pointer;transition:background-color .2s ease;vertical-align:middle}.toggle-switch:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background-color:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transition:transform .2s ease}.checkbox-label input[type=checkbox]:checked+.toggle-switch{background-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.toggle-switch:after{transform:translate(20px)}.template-checkbox{display:flex;align-items:center;gap:10px}.template-checkbox label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:400}.template-checkbox input[type=checkbox]:checked~label .toggle-switch{background-color:var(--primary-color)}.template-checkbox input[type=checkbox]:checked~label .toggle-switch:after{transform:translate(20px)}a{font-size:16px;font-weight:700;text-align:center;text-decoration:underline;color:var(--primary-color-lighter);cursor:pointer}
