@import "tables.css";
@import "timeline.css";

:root {
  --primary-text: #0054A0;
  --primary-bg: #0054A0;

  /* Status colors */
  --color-success: #198754;
  --color-success-light: #cff6dd;
  --color-success-dark: #157347;
  --color-success-text: #1fa750;
  --color-success-indicator: #23bd5a;
  --color-success-vibrant: #00bf63;

  --color-warning: #cfa00c;
  --color-warning-light: #fdf5dd;
  --color-warning-indicator: #f2be1d;

  --color-error: #dc3545;
  --color-error-light: #fddcdf;
  --color-error-dark: #802932;

  /* Bonus tier colors */
  --tier-bronze: #FAFA00;
  --tier-silver: #FF8C00;
  --tier-gold: #2A8000;
  --tier-platinum: #FF0000;

  --equity-10percent: #CCDDEC;
  --equity-20percent: #AAC6DF;
  --equity-30percent: #80AAD0;
  --equity-40percent: #558DC0;
  --equity-60percent: #004685;
  --equity-70percent: #00386B;
  --equity-80percent: #002A50;
  --equity-90percent: #001C35;
  --equity-100percent: #001120;
  
  --primary-content-bg: #F2F7FB;
  --geeks-navbar-vertical-link: #324054;
  --geeks-navbar-vertical-link-hover: var(--primary-text);
  --geeks-nav-link-font-size: 14px;
  --geeks-link-color: #0054A0;
  --geeks-link-color-rgb: 0,84,160;
  --geeks-link-hover-color: #0c7de3;
  --geeks-link-hover-color-rgb: 12,125,227;

  --geeks-body-font-size: 0.95em;
  --geeks-font-sans-serif: "Manrope" !important;
  --geeks-body-font-family: "Manrope" !important;

  --geeks-primary-border-subtle: var(--equity-10percent);
  --geeks-input-focus-border: var(--equity-10percent);
}

.list-group {
  --geeks-list-group-active-bg: var(--primary-bg);
}

.pagination {
  --geeks-pagination-active-bg: var(--primary-bg);
  --geeks-pagination-active-border-color: var(--primary-text);
  --geeks-pagination-active-color: white;
  --geeks-pagination-hover-bg: var(--equity-40percent);
  --geeks-pagination-hover-border-color: var(--equity-40percent);
  --geeks-pagination-focus-color: var(--geeks-white);
  --geeks-pagination-focus-bg: var(--primary-bg);
}

.card-body {
  --geeks-card-color: rgb(88, 95, 96) !important;
}

.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6 {
  font-family: "Manrope", "Open Sans", sans-serif !important;
  color: var(--primary-text);
  font-weight: 700;
}

.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }

strong {
  font-weight: 700;
  color: black;
}

ol:not(.navbar-nav) li, ul:not(.navbar-nav) li {
  margin-bottom: 0.6em;
}

/*ol:not(.navbar-nav) li:first-child, ul:not(.navbar-nav) li:first-child {*/
/*  margin-top: 0.6em;*/
/*}*/

ul.nav  > li, ol.nav > li {
  margin-bottom: 0;
}

.btn-primary {
  --geeks-btn-bg: var(--primary-bg);
  --geeks-btn-border-color: var(--primary-bg);
  --geeks-btn-hover-bg: #004685;
  --geeks-btn-hover-border-color: #0c7de3;
  --geeks-btn-active-bg: var(--primary-bg);
  --geeks-btn-active-border-color: var(--primary-bg);
  --geeks-btn-disabled-bg: #AAC6DF;
  --geeks-btn-disabled-border-color: #AAC6DF;
}

.btn.btn-pill {
  border-radius: 20px;
}

@media (max-width: 576px) {
  .btn.btn-responsive {
    width: 100% !important;
  }
}

.card {
  border: 0;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.19);
  border-radius: 25px;
}

.text-primary {
  color: var(--primary-text) !important;
}

.text-secondary-typeface {
  font-family: "Open Sans", sans-serif;
}

.form-control::placeholder {
  color: #ccc;
}

.navbar-vertical {
  max-width: 18rem;
  overflow-y: scroll;
}

#page-content {
  margin-left: 18rem;
  background-color: var(--primary-content-bg);
}

@media (max-width: 576px) {
  #page-content {
    margin-left: 0;
  }
  
  .navbar-vertical {
    margin-left: -18rem;
  }

  #db-wrapper.toggled #page-content {
    margin-left: 18rem;
  }
}

.navbar-vertical .navbar-nav .nav-item .nav-link {
  font-size: var(--geeks-nav-link-font-size);
}
.navbar-vertical.navbar a.nav-link:hover {
  background-color: #F2F7FB;
  color: var(--primary-text);
}

.navbar-vertical .navbar-nav .nav .nav-item .nav-link {
  margin-left: 1.75rem;
  padding-left: 1rem;
  border-left: 1px solid #D9D9D9;
}

.header .navbar {
  padding: .625rem 2.2rem;
}

.thumb16 {
  width: 16px !important;
  height: 16px !important;
}

.thumb24 {
  width: 24px !important;
  height: 24px !important;
}

.thumb32 {
  width: 32px !important;
  height: 32px !important;
}

.thumb48 {
  width: 48px !important;
  height: 48px !important;
}

.thumb64 {
  width: 64px !important;
  height: 64px !important;
}

.thumb72 {
  width: 72px !important;
  height: 72px !important;
}

.thumb96 {
  width: 96px !important;
  height: 96px !important;
}

.thumb128 {
  width: 128px !important;
  height: 128px !important;
}

.w-150 {
  width: 150px;
}

.w-200 {
  width: 200px;
}

.w-250 {
  width: 250px;
}

.validation-summary-errors {
  color: #802932;
  background-color: #fddcdf;
  border-color: #fccdd2;
  padding: 10px 5px;
  border-radius: 3px;
  margin: 10px 0;
}

.validation-summary-errors ul {
  padding-left: 1em;
  margin-bottom: 0;
}

.validation-summary-errors ul li {
  font-weight: 300;
  list-style: none;
  color: black;
  font-size: 0.9em;
}

.validation-summary-errors ul li:last-child {
  margin-bottom: 0 !important;
}

.validation-summary-errors ul li:before {
  content: "\f06a";
  font-family: FontAwesome;
  margin-right: 10px;
}

.swal2-popup.swal2-toast {
  white-space:nowrap;
  width: 100px;
}

/*.invalid-feedback {*/
/*  display: none !important;*/
/*}*/

.is-valid ~ .invalid-feedback {
  display: none !important;
}

.form-check-input.is-valid~.form-check-label,
.was-validated .form-check-input:valid~.form-check-label {
  color: inherit;
}

.form-check-label {
  width: 100%;
}

.tooltip-inner {
  color: white !important;
}

div.last-clear-margin:last-of-type {
  margin-bottom: 0 !important;
}

.form-check-input:checked {
  background-color: var(--primary-bg);
  border-color: var(--primary-bg);
}

.form-label {
  font-size: 0.9em;
}

/* --- Video player --- */
.plyr {
  border-radius: 15px;
}

.plyr__poster {
  background-position: top !important;
}

.plyr--video .plyr__control:hover,
.plyr__control--overlaid {
  background-color: transparent !important;
}

.plyr__control.plyr__control--overlaid svg {
  height: 50px;
  width: 50px;
}

button.swal2-confirm, button.deny, button.swal2-cancel {
  min-width: 150px;
}

.hero p:last-child {
  margin-bottom: 0 !important;
}

.bg-yellow {
  background-color: yellow;
}

.ms-sel-item {
  color: black !important;
}

.ms-ctn {
  box-shadow: none !important;
}

.button {
  font-weight: 500;
  background-color: lightgrey;
  padding: 0 7px 2px;
  border-radius: 3px;
  border: 1px solid #ccc;
  font-size: 0.8em;
  color:rgba(0,0,0,.6);
}

.nav a.nav-link {
  color: black;
  font-size: 1em;
}

.nav a.nav-link.active {
  border-bottom: 1px solid var(--primary-text);
}

.profile-sidebar.list-group li.list-group-item {
  margin-bottom: 0;
}

.profile-sidebar.list-group li.list-group-item a {
  color: black;
}

.profile-sidebar.list-group li.list-group-item.active a {
  color: white;
}

.custom-sweet-alert {
  width: 75vw !important;
  height: 90vh !important;
}

.navbar-vertical .navbar-nav .nav-item .nav-link[data-bs-toggle=collapse]:after {
  font-family: FontAwesome;
  content: "\f078";
}

.form-check.form-switch .invalid-feedback {
  text-align: end;
}

.equity-decorated-link {
  color: var(--primary-text);
  border-bottom: 1px dotted;
}

img.bg-contrast-equity {
  padding: 0.25rem;
  border-radius: 0.3rem;
  background-color: var(--primary-bg);
}

.dropdown-toggle:after {
  font-family: FontAwesome !important;
  content: "\f078" !important;
  margin-left: 0.5em;
  margin-top: 2px;
}

.dropend .dropdown-toggle:after, 
.dropup .dropdown-toggle:after {
    font-family: FontAwesome !important;
    content: "\f078" !important;
}

.dropdown-item {
  color: var(--equity-60percent) !important;
  font-weight: 600;
}

.form-check-input.is-valid:checked {
  background-color: var(--primary-bg);
}

.form-check-input.is-valid:focus {
  box-shadow: 0 0 0 .25rem var(--equity-10percent);
}

.bootstrap-table .fixed-table-container .table td {
  vertical-align: top;
}

.bootstrap-table .table thead th .th-inner {
  padding: 0.75rem !important;
}

ol.elevate-list li, ul.elevate-list li {
  margin-bottom: 5px;
}

.contract-download {
  text-align: center;
  position: relative;
}

.contract-download i {
  color: var(--primary-text);
}

.contract-download {
  padding: 15px;
  border: 1px solid var(--equity-20percent);
  border-radius: 10px;
  height: 100%;
}

.contract-download:hover {
  background-color: var(--primary-content-bg);
}

.loading-animation {
    height: 6px;
    border-radius: 4px;
    width: 100%;
    --c:no-repeat linear-gradient(#6100ee 0 0);
    background: var(--c),var(--c),#d7b8fc;
    background-size: 60% 100%;
    animation: l16 8s infinite;
}
@keyframes l16 {
    0%   {background-position:-150% 0,-150% 0}
    66%  {background-position: 250% 0,-150% 0}
    100% {background-position: 250% 0, 250% 0}
}

/* ==========================================================================
   Mobile Touch Target Accessibility
   Minimum 44x44px touch targets per WCAG 2.1 guidelines
   ========================================================================== */

/* Minimum touch target size for interactive elements */
.btn {
  min-height: 44px;
  min-width: 44px;
}

/* Dropdown items need adequate touch targets on mobile */
@media (max-width: 768px) {
  .dropdown-item {
    min-height: 44px;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    display: flex;
    align-items: center;
  }

  .nav-link {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  .form-check {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  .form-check-input {
    min-width: 20px;
    min-height: 20px;
  }

  .list-group-item {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* Icon-only buttons need proper padding */
.btn-icon {
  padding: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}

/* Vertical navigation links need adequate spacing */
.navbar-vertical .nav-link {
  padding: 12px 16px;
  min-height: 44px;
}

/* Ensure clickable table rows have adequate height */
.table-hover tbody tr {
  min-height: 44px;
}

/* Pagination buttons */
.pagination .page-link {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================================
   Responsive Breakpoints
   Comprehensive media queries for all device sizes
   ========================================================================== */

/* Small desktops and large tablets (max-width: 992px) */
@media (max-width: 992px) {
  /* Stack horizontal navigation */
  .nav-horizontal {
    flex-direction: column;
  }

  /* Adjust card layouts */
  .card-deck,
  .row-cols-lg-3 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }

  /* Reduce padding on containers */
  .container-fluid {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Adjust header spacing */
  .header .navbar {
    padding: 0.5rem 1rem;
  }

  /* Make modals wider on tablets */
  .modal-dialog {
    max-width: 90%;
  }
}

/* Tablets (max-width: 768px) */
@media (max-width: 768px) {
  /* Full-width sidebar when visible */
  .navbar-vertical {
    width: 100%;
    max-width: 100%;
  }

  /* Stack dashboard grids */
  .dashboard-grid,
  .row-cols-md-2 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* Reduce page title size */
  .page-title,
  h1.display-4 {
    font-size: 1.75rem;
  }

  /* Stack form layouts */
  .form-inline,
  .d-flex.gap-3 {
    flex-direction: column;
    gap: 0.75rem !important;
  }

  /* Full-width buttons in stacked forms */
  .form-inline .btn {
    width: 100%;
  }

  /* Adjust card body padding */
  .card-body {
    padding: 1rem;
  }

  /* Hide less important columns in tables */
  .table .d-none-mobile {
    display: none !important;
  }

  /* Adjust stat cards */
  .stat-card .display-4 {
    font-size: 2rem;
  }

  /* Sweet alert modals */
  .custom-sweet-alert {
    width: 95vw !important;
    height: auto !important;
    max-height: 90vh !important;
  }
}

/* Small phones (max-width: 576px) */
@media (max-width: 576px) {
  /* Reduce heading sizes */
  h1, .h1 {
    font-size: 1.5rem;
  }

  h2, .h2 {
    font-size: 1.25rem;
  }

  h3, .h3 {
    font-size: 1.1rem;
  }

  /* Page title adjustments */
  .page-title {
    font-size: 1.25rem;
  }

  /* Stat cards - smaller numbers */
  .stat-card .display-4,
  .display-4 {
    font-size: 1.75rem;
  }

  /* Card adjustments */
  .card {
    border-radius: 15px;
  }

  .card-body {
    padding: 0.875rem;
  }

  /* Button padding adjustments */
  .btn {
    padding: 0.5rem 0.75rem;
  }

  .btn-lg {
    padding: 0.625rem 1rem;
    font-size: 1rem;
  }

  /* Form label adjustments */
  .form-label {
    font-size: 0.85rem;
  }

  /* Stack horizontal button groups */
  .btn-group:not(.btn-group-vertical) {
    flex-direction: column;
    width: 100%;
  }

  .btn-group:not(.btn-group-vertical) .btn {
    width: 100%;
    border-radius: 0.375rem !important;
    margin-bottom: 0.25rem;
  }

  /* Breadcrumb adjustments */
  .breadcrumb {
    font-size: 0.8rem;
  }

  .breadcrumb-item + .breadcrumb-item::before {
    padding: 0 0.25rem;
  }

  /* Alert adjustments */
  .alert {
    padding: 0.75rem;
    font-size: 0.9rem;
  }

  /* Badge adjustments */
  .badge {
    font-size: 0.7rem;
    padding: 0.35em 0.5em;
  }

  /* Table cell padding */
  .table td,
  .table th {
    padding: 0.5rem;
    font-size: 0.85rem;
  }

  /* Hide table headers for stacked display */
  .table-responsive-stack thead {
    display: none;
  }

  .table-responsive-stack tbody tr {
    display: block;
    margin-bottom: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 0.5rem;
  }

  .table-responsive-stack tbody td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    border-bottom: 1px solid #f0f0f0;
  }

  .table-responsive-stack tbody td:last-child {
    border-bottom: none;
  }

  .table-responsive-stack tbody td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--primary-text);
    flex: 0 0 40%;
    text-align: left;
  }

  /* Modal adjustments */
  .modal-dialog {
    margin: 0.5rem;
  }

  .modal-content {
    border-radius: 15px;
  }

  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 1rem;
  }

  /* Pagination adjustments */
  .pagination .page-link {
    padding: 0.375rem 0.5rem;
    font-size: 0.85rem;
  }

  /* Progress bar label */
  .progress {
    height: 1.25rem;
  }
}

/* Extra small phones (max-width: 375px) */
@media (max-width: 375px) {
  /* Further reduce heading sizes */
  h1, .h1 {
    font-size: 1.25rem;
  }

  h2, .h2 {
    font-size: 1.1rem;
  }

  /* Card title adjustments */
  .card-title {
    font-size: 1rem;
  }

  /* Smaller buttons */
  .btn {
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
  }

  .btn-lg {
    padding: 0.5rem 0.875rem;
    font-size: 0.95rem;
  }

  /* Tighter card padding */
  .card-body {
    padding: 0.75rem;
  }

  /* Stat cards */
  .stat-card .display-4,
  .display-4 {
    font-size: 1.5rem;
  }

  /* Table adjustments */
  .table td,
  .table th {
    padding: 0.375rem;
    font-size: 0.8rem;
  }

  /* Badge adjustments */
  .badge {
    font-size: 0.65rem;
  }

  /* Form adjustments */
  .form-control {
    font-size: 0.9rem;
    padding: 0.375rem 0.5rem;
  }

  .form-label {
    font-size: 0.8rem;
  }

  /* Alert adjustments */
  .alert {
    padding: 0.625rem;
    font-size: 0.85rem;
  }

  /* Nav link adjustments */
  .nav-link {
    padding: 0.5rem;
    font-size: 0.85rem;
  }

  /* Reduce container padding */
  .container-fluid {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}

/* ========================================
   Pill Button Component
   ======================================== */
.pill-button {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  min-width: 110px;
  background: linear-gradient(135deg, var(--primary-bg) 0%, var(--equity-60percent) 100%);
  color: white;
  border-radius: 12px;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.pill-button:hover {
  background: linear-gradient(135deg, var(--equity-60percent) 0%, var(--equity-70percent) 100%);
  color: white;
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.pill-button .icon-wrap {
  font-size: 1.5rem;
  margin-bottom: 6px;
}

.pill-button .pill-caption {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
  line-height: 1.2;
}

/* Profit Share Network Widget */
.profit-share-list {
  max-height: 300px; /* ~8 visible rows before scrolling */
  overflow-y: auto;
}

.profit-share-toggle-icon {
  transition: transform 0.2s ease-in-out;
}

@media (max-width: 768px) {
  .profit-share-list {
    max-height: 200px; /* ~5 visible rows on mobile */
  }
}
