/* Custom CSS for Finite Elemance Exchange */

/* Base styles */
:root {
    --primary-color: #325d88;
    --secondary-color: #6c757d;
    --success-color: #28a745;
    --danger-color: #dc3545;
    --warning-color: #ffc107;
    --info-color: #17a2b8;
    --light-color: #f8f9fa;
    --dark-color: #343a40;
}

/* Custom component styles */
.btn-custom {
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.15s ease-in-out;
}

.btn-custom:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Card enhancements */
.card {
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.15s ease-in-out;
}

.card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Table styles */
.table-custom {
    border-radius: 0.5rem;
    overflow: hidden;
}

.table-custom thead th {
    background-color: var(--light-color);
    border-bottom: 2px solid var(--primary-color);
    font-weight: 600;
}

/* Form styles */
.form-control-custom {
    border-radius: 0.375rem;
    border: 1px solid #ced4da;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-control-custom:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

/* Required field indicator */
.form-label .text-danger {
    font-weight: bold;
}

/* Password strength indicator styles */
.password-strength-container {
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    padding: 0.75rem;
    background-color: #f8f9fa;
}

.password-strength-meter-wrapper {
    margin-bottom: 0.5rem;
}

.password-strength-label {
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.25rem;
}

.password-strength-meter {
    height: 8px;
    background-color: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

.password-strength-bar {
    height: 100%;
    width: 0%;
    transition: width 0.3s ease, background-color 0.3s ease;
    border-radius: 4px;
}

.password-strength-bar.very-weak {
    background-color: #dc3545 !important;
}

.password-strength-bar.weak {
    background-color: #fd7e14 !important;
}

.password-strength-bar.fair {
    background-color: #ffc107 !important;
}

.password-strength-bar.good {
    background-color: #20c997 !important;
}

.password-strength-bar.strong {
    background-color: #198754 !important;
}

.password-requirements-title {
    font-size: 0.875rem;
    color: #495057;
}

.password-requirements {
    font-size: 0.75rem;
}

.password-requirements li {
    margin-bottom: 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.password-requirements li i {
    font-size: 0.875rem;
    flex-shrink: 0;
}

.password-match-indicator {
    font-size: 0.875rem;
}

/* Dark theme support for password strength */
[data-bs-theme="dark"] .password-strength-container {
    background-color: #2b3035;
    border-color: #495057;
}

[data-bs-theme="dark"] .password-strength-meter {
    background-color: #495057;
}

[data-bs-theme="dark"] .password-requirements-title {
    color: #adb5bd;
}

/* Dark theme support for Bootstrap components with light backgrounds */
[data-bs-theme="dark"] .breadcrumb {
    background-color: #2b3035;
    --bs-breadcrumb-divider-color: #adb5bd;
    --bs-breadcrumb-item-active-color: #dee2e6;
}

[data-bs-theme="dark"] .breadcrumb-item a {
    color: #6ea8fe;
}

[data-bs-theme="dark"] .breadcrumb-item a:hover {
    color: #9ec5fe;
}

[data-bs-theme="dark"] .table-custom thead th {
    background-color: #2b3035;
}

/* tablesorter (theme.bootstrap_4) forces a light header background (#eee) via
   `.tablesorter-bootstrap:not(.table-dark) thead .tablesorter-header`; in dark
   mode the inherited text turns light too, leaving it unreadable. The CDN
   theme loads after app.css, so these overrides are written with strictly
   higher specificity (0,4,2) to win the cascade. */
[data-bs-theme="dark"] table.tablesorter-bootstrap:not(.table-dark) thead .tablesorter-header {
    background-color: #2b3035;
    color: #dee2e6;
}

[data-bs-theme="dark"] table.tablesorter-bootstrap:not(.table-dark) thead .tablesorter-header-inner {
    color: #dee2e6;
}

[data-bs-theme="dark"] table.tablesorter-bootstrap:not(.table-dark) thead .tablesorter-headerAsc,
[data-bs-theme="dark"] table.tablesorter-bootstrap:not(.table-dark) thead .tablesorter-headerDesc {
    background-color: #343a40;
    color: #fff;
}

[data-bs-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-light-custom {
    background-color: #2b3035 !important;
}

[data-bs-theme="dark"] .text-muted-custom {
    color: #adb5bd !important;
}

[data-bs-theme="dark"] .upload-info
{
  color: #000;
}


[data-bs-theme="dark"] .upload-info
{
  color: #444;
  .text-muted
  {
    color: #555!important;
  }
}

[data-bs-theme="dark"] .alert-light
{
  background: #333;
  color: #ccc;
}


/* Navigation styles */
.navbar-custom {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Alert styles */
.alert-custom {
    border: none;
    border-radius: 0.5rem;
    font-weight: 500;
}

/* Utility classes */
.text-muted-custom {
    color: #6c757d !important;
}

.bg-light-custom {
    background-color: #f8f9fa !important;
}

/* Loading states */
.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Responsive utilities */
@media (max-width: 768px) {
    .table-responsive-custom {
        font-size: 0.875rem;
    }

    .btn-group-mobile {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Animation utilities */
.fade-in {
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Print styles */
@media print {
    .no-print {
        display: none !important;
    }

    .print-break {
        page-break-before: always;
    }
}

.card:hover
{
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}


.alert a.btn
{
  text-decoration: none;
}


/*.form-check-input
{
  border-color: #444;
}*/

:root {
  --bs-border-color: #888;
}



/* adjust if navbar size changes */
.elemance-main-content {
    min-height: calc(100vh - 100px);
}


.home-license-wrap
{

  /*bootstrap dropdown fix*/
  .table-responsive .dropdown-menu {
    position: fixed !important;
  }

}

/* no card hovering */
.card:hover
{
  box-shadow: none;
}


.upload-section.documentation-files
{
  display: none;
}

.warn-encrypt-in-name .file-name
{

  background: red;
  color: #fff;
  padding-left: .5em;
  padding-right: .5em;
  border-radius: 4px;
}

.disk-usage-wrap span
{
  color:#a3b7ca!important;
}
