.table-wrapper{flex:1;overflow-y:auto;overflow-x:auto;border:1px solid #e0e0e0;border-radius:var(--border-radius, 4px);max-width:100%}table{width:100%;border-collapse:collapse;background-color:#fff}table thead{position:sticky;top:0;background-color:var(--secondary-color-much-lighter2);z-index:1;border-top:#999 2px solid}table th{padding:12px 16px;text-align:center;font-weight:700;color:var(--text-primary);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(--secondary-color)}table th.sortable .sort-arrow{display:inline-block;margin-left:6px;font-size:16px;color:#666;opacity:.3;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}table tbody tr:hover{background-color:#f9f9f9}table td{padding:12px 16px;font-size:14px;text-align:center;vertical-align:middle}table .no-data{text-align:center;color:#999;padding:40px;font-style:italic}.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:#fff;color:var(--primary-color);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:var(--primary-color-lighter);color:#fff}.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,.contacts-container,.users-container,.fleet-container,.orders-container,.dispatch-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:var(--border-radius-lg, 8px);box-shadow:0 4px 20px #00000026;max-width:700px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;color:#333;font-size:24px}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.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,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.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;--terciary-color: #cbcc76;--button-color: #63b3e2;--background-color: white;--surface-color: #2aa9a9;--text-primary: #4e4d4d;--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{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,select,textarea{box-shadow:inset 0 2px 4px #0000001a}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}.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)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}
