/* Global Styling Rules for Project */

/* Reset Spacing */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border-radius: 0 !important; /* Square/Box System */
}

/* Square/Box System - Ensure all components have sharp edges */
.btn,
.form-control,
.card,
.alert,
.modal-content,
.dropdown-menu,
input,
select,
textarea,
.nav-tabs,
.nav-pills,
.pagination,
.badge,
.progress,
.toast,
.tooltip,
.popover,
.list-group,
.list-group-item {
    border-radius: 0 !important;
}

/* Maximize Space Usage */
body, html {
    width: 100%;
    height: 100%;
}

.container,
.container-fluid,
.row,
.col,
.card,
.card-body,
.form-control,
.input-group,
.table,
.table-responsive,
.modal-content,
.modal-body,
.dropdown-menu,
.list-group {
    width: 100%;
    max-width: 100%;
}

/* Make components fill their containers */

.form-control,
.input-group,
.card,
.table,
.dropdown-menu,
.modal-dialog,
.modal-content {
    width: 100%;
}

/* Remove unnecessary spacing between elements */
.card-body,
.modal-body,
.container,
.container-fluid,
.row,
.form-group {
    padding: 1pt !important;
}

/* Typography & Layout */
p, h1, h2, h3, h4, h5, h6, span, label, input, textarea {
    margin: 1pt !important;
    padding: 1pt !important;
}

/* Select elements need more space */
select {
    margin: 1pt !important;
    padding: 4pt !important;
    min-height: 30px;
}
a,button {
    margin: 3pt !important;
    padding: 3pt !important;
}
/* Compact table styling */
.table td,
.table th {
    padding: 4px !important;
}

/* Select2 adjustments */
.select2-container,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-dropdown {
    border-radius: 0 !important;
    width: 100% !important;
}

/* Tom Select adjustments */
.ts-wrapper,
.ts-control,
.ts-dropdown,
.ts-dropdown-content {
    border-radius: 0 !important;
    width: 100% !important;
}

.ts-wrapper.single .ts-control {
    background: #fff;
    box-shadow: none;
    border: 1px solid #ced4da;
    padding: 0.375rem 0.75rem;
    min-height: 36px;
}

.ts-dropdown {
    border: 1px solid #ced4da;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    z-index: 1000;
}

.ts-dropdown .option {
    padding: 0.375rem 0.75rem;
}

.ts-dropdown .active {
    background-color: #f8f9fa;
    color: #212529;
}

/* Fix for highlighted text in Tom Select search results */
.ts-dropdown .highlight {
    color: #0d6efd;
    background: inherit;
    font-weight: bold;
}

/* Customer panel specific Tom Select adjustments */
body .header-fixed .ts-wrapper.single .ts-control {
    padding: 6px 12px;
    min-height: 34px;
    margin: 3pt !important;
}

body .header-fixed .ts-wrapper .ts-control > input {
    min-height: 28px;
    height: 28px;
    padding: 4px !important;
}

body .header-fixed .ts-wrapper.has-items .ts-control {
    padding: 4px 8px !important;
}

body .header-fixed .ts-wrapper .ts-control .item {
    padding: 2px 6px !important;
    margin: 2px !important;
}

/* Fix input and select styling in customer panel header */
body .header-fixed input[type="number"],
body .header-fixed input[type="text"],
body .header-fixed select {
    min-height: 34px;
    padding: 6px 12px !important;
    margin: 3pt !important;
    width: 100%;
    border: 1px solid #ced4da;
}

/* Ensure dropdown is visible and properly positioned */
body .header-fixed .ts-dropdown {
    margin-top: 0;
    border-top-width: 0;
    border-radius: 0 0 4px 4px !important;
    z-index: 1050;
}

/* DataTables adjustments */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
    padding: 1pt !important;
    margin: 1pt !important;
}

/* Ensure flex layouts stretch to fill space */
.d-flex {
    width: 100%;
}

.flex-column,
.flex-row {
    flex: 1 1 auto;
}
