/*Cookee Banner and button  ///////////////////////////*/
.cookie-banner {
  background: #fff3cd;
  color: #856404;
  padding: 12px;
  text-align: center;
  border-top: 1px solid #ffeeba;
  position: fixed;
  bottom: 60px;
  left: 0;
  width: 100%;
  z-index: 9999;
  font-weight: bold;
}
.cookie-banner-btn {
  margin-left: 10px;
  background: #ffeeba;
  color: #856404;
  border: 1px solid #ffeeba;
  border-radius: 4px;
  padding: 4px 12px;
  font-weight: bold;
  cursor: pointer;
}




.bg-dark-lighter {
  background-color: #4e555b !important; /* 20% lighter than #343a40 */
  color: #fff !important; /* Ensures text stays white */
}



.content-wrapper {
  min-height: calc(100vh - 100px); /* Adjust based on navbar + footer height */
}
/*default table design*/
.table-basa-default {
  background-color: white;
}

.table-basa-default thead {
  background-color: rgb(52, 58, 64);
  color: white;
}
/* Always white arrows (both active and inactive) */
.table-basa-default thead th.sorting::after,
.table-basa-default thead th.sorting::before,
.table-basa-default thead th.sorting_asc::after,
.table-basa-default thead th.sorting_asc::before,
.table-basa-default thead th.sorting_desc::after,
.table-basa-default thead th.sorting_desc::before {
  color: white !important;
  opacity: 1 !important;
}




/* ///////////////////////////////////////////////ios Vertical */
.vertical-label {
  writing-mode: sideways-lr;
  white-space: nowrap;
  text-align: center;
}


/* ///////////////////////////////////////////////matrix styles */

/* ///////////////////////////////////////////////matrix styles */
/* matrix bold if not 0 */
.matrix-cell {
    text-align: center;
}
.matrix-table td,
.matrix-table th {
  padding: 0.25rem;
  vertical-align: top;
  border-top: 1px solid #dee2e6;
}

/*//////////////////////Style these elements the same//////////*/
.matrix-input {
  width: 100%;
  max-width: 100%;
  font-size: 0.75rem;
  padding: 0.25rem;
  text-align: center;
  box-sizing: border-box;
}
.matrix-cell-wrapper {
  width: 50px;
  min-width: 25px;
  font-size: 0.75rem;
  padding: 0.25rem;
  text-align: center;
}
/*//////////////////////Style these elements the same//////////*/

/*matrix style for unbalanced games*/
.highlight-unbalanced {
    background-color: #dc3545 !important; /* Bootstrap danger red */
    color: #fff !important;
    font-weight: bold;
    border-color: #dc3545 !important;
}

.highlight-unbalanced-cell {
    background-color: #dc3545 !important; /* Bootstrap danger red */
    color: #fff !important;
    font-weight: 600;
    border-color: #dc3545 !important;
}

/*button text for game slots button on warning background*/
.btn-light-darktext {
    color: #333 !important;
    background-color: #f8f9fa;
    border: 1px solid #ccc;
}
.btn-light-darktext:hover {
    background-color: #e2e6ea;
    color: #000 !important;
}

/* Subtle warning alert - white background with yellow border for informational warnings */
.alert-warning-subtle {
    color: #000000;
    background-color: #ffffff;
    border: 2px solid #ffc107;
    border-radius: 0.375rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

/* Vertical labels for matrix headers when many teams */
.vertical-label {
    writing-mode: vertical-lr;
    text-orientation: mixed;
    white-space: nowrap;
    padding: 0.5rem 0.25rem;
    min-height: 100px;
    vertical-align: bottom;
}

/* Enhanced matrix cell styling */
.matrix-display-cell {
    font-size: 1.1rem !important;
    padding: 0.5rem !important;
    transition: all 0.2s ease;
}

.matrix-display-cell.font-weight-bold {
    font-size: 1.2rem !important;
}

/* Conference grouping for matrix */
.matrix-table .table-active {
    background-color: rgba(0, 0, 0, 0.05) !important;
}

/* Ensure highlighting overrides conference background */
.matrix-table .highlight-unbalanced-cell {
    background-color: #dc3545 !important;
    color: #fff !important;
}

/* ///////////////////////////////////////////////matrix styles */

/* reduce title size on calnedar*/
.fc-daygrid-dot-event .fc-event-title {
    flex-grow: 1;
    flex-shrink: 1;
    font-weight: 400;
    min-width: 0px;
    overflow: hidden;
}

#team-list-panel {
    margin-top: 90px; /* Adjust as needed */
  }

  .potential-drop-target {
    box-shadow: 0 0 0 2px #ffcc00 !important;
    position: relative;
    z-index: 100 !important;
  }

  .team-drag-mirror {
    z-index: 9999 !important;
    opacity: 0.8;
    pointer-events: none;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    border-radius: 4px;
    transform: scale(0.95);
    cursor: grabbing;
  }


  /* Make timegrid events more distinct */
  .fc-timegrid-event {
    z-index: 5;
    position: relative;
  }

  #team-list .list-group-item {
    font-size: 0.8rem;
    padding: 6px 10px;
    margin-bottom: 4px;
    border-left: 4px solid transparent;
    border-radius: 0.3rem;
    background-color: #ffffff;
    transition: all 0.2s ease-in-out;
    cursor: grab;
  }

  #team-list .list-group-item:hover {
    background-color: #e9ecef;
  }

  #team-list .drop-rejected {
    border-left-color: red !important;
    background-color: #fdd !important;
  }

  /* Dragula mirror styling - keep same size as original but slightly smaller for better dropping */
  .gu-mirror {
    font-size: 0.8rem !important;
    padding: 4px 15px !important; /* Reduced height (4px vs 6px), added left/right padding (15px vs 10px) */
    margin-bottom: 4px !important;
    border-radius: 0.3rem !important;
    background-color: #ffffff !important;
    opacity: 0.8 !important;
    cursor: grabbing !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;
    transform: none !important; /* Prevent any scaling */
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
  }

/* =====================
   CALENDAR TEAM COLOR BUTTON & EVENT STYLES
   ===================== */

/* Team filter button: outline and text in team color */
.team-filter-btn.team-color-1  { border-color: #28a745 !important; color: #28a745 !important; background: transparent !important; }
.team-filter-btn.team-color-2  { border-color: #ffc107 !important; color: #ffc107 !important; background: transparent !important; }
.team-filter-btn.team-color-3  { border-color: #17a2b8 !important; color: #17a2b8 !important; background: transparent !important; }
.team-filter-btn.team-color-4  { border-color: #dc3545 !important; color: #dc3545 !important; background: transparent !important; }
.team-filter-btn.team-color-5  { border-color: #6610f2 !important; color: #6610f2 !important; background: transparent !important; }
.team-filter-btn.team-color-6  { border-color: #fd7e14 !important; color: #fd7e14 !important; background: transparent !important; }
.team-filter-btn.team-color-7  { border-color: #20c997 !important; color: #20c997 !important; background: transparent !important; }
.team-filter-btn.team-color-8  { border-color: #e83e8c !important; color: #e83e8c !important; background: transparent !important; }
.team-filter-btn.team-color-9  { border-color: #0dcaf0 !important; color: #0dcaf0 !important; background: transparent !important; }
.team-filter-btn.team-color-10 { border-color: #6f42c1 !important; color: #6f42c1 !important; background: transparent !important; }
.team-filter-btn.team-color-11 { border-color: #ff6f61 !important; color: #ff6f61 !important; background: transparent !important; }
.team-filter-btn.team-color-12 { border-color: #00a8ff !important; color: #00a8ff !important; background: transparent !important; }
.team-filter-btn.team-color-13 { border-color: #ffa502 !important; color: #ffa502 !important; background: transparent !important; }
.team-filter-btn.team-color-14 { border-color: #2ed573 !important; color: #2ed573 !important; background: transparent !important; }
.team-filter-btn.team-color-15 { border-color: #e55039 !important; color: #e55039 !important; background: transparent !important; }
.team-filter-btn.team-color-16 { border-color: #1e90ff !important; color: #1e90ff !important; background: transparent !important; }
.team-filter-btn.team-color-17 { border-color: #ff4757 !important; color: #ff4757 !important; background: transparent !important; }
.team-filter-btn.team-color-18 { border-color: #845ec2 !important; color: #845ec2 !important; background: transparent !important; }
.team-filter-btn.team-color-19 { border-color: #00c9a7 !important; color: #00c9a7 !important; background: transparent !important; }
.team-filter-btn.team-color-20 { border-color: #ff6f00 !important; color: #ff6f00 !important; background: transparent !important; }

/* Team filter button: selected (filled background, white or black text for contrast) */
.team-filter-btn.selected.team-color-1  { background: #28a745 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-2  { background: #ffc107 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-3  { background: #17a2b8 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-4  { background: #dc3545 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-5  { background: #6610f2 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-6  { background: #fd7e14 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-7  { background: #20c997 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-8  { background: #e83e8c !important; color: #fff !important; }
.team-filter-btn.selected.team-color-9  { background: #0dcaf0 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-10 { background: #6f42c1 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-11 { background: #ff6f61 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-12 { background: #00a8ff !important; color: #fff !important; }
.team-filter-btn.selected.team-color-13 { background: #ffa502 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-14 { background: #2ed573 !important; color: #000 !important; }
.team-filter-btn.selected.team-color-15 { background: #e55039 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-16 { background: #1e90ff !important; color: #fff !important; }
.team-filter-btn.selected.team-color-17 { background: #ff4757 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-18 { background: #845ec2 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-19 { background: #00c9a7 !important; color: #fff !important; }
.team-filter-btn.selected.team-color-20 { background: #ff6f00 !important; color: #000 !important; }

/* Team color CSS classes removed - now using database colors with inline styles */

/* =====================
   END CALENDAR TEAM COLOR BUTTON & EVENT STYLES
   ===================== */

/* All (green) and Clear (yellow) team filter buttons */
.team-filter-all {
  background: #28a745 !important;
  color: #fff !important;
  border: 1px solid #218838 !important;
}
.team-filter-clear {
  background: #ffc107 !important;
  color: #000 !important;
  border: 1px solid #e0a800 !important;
}

/* Used/Killed event: clean black styling, no dots */
.fc-event.fc-event-unavailable {
  background: #000 !important;
  border-color: #444 !important;
  color: #fff !important;
  position: relative;
}
/* Remove dot styling - cleaner appearance */
.fc-event .fc-event-dot,
.fc-daygrid-event-dot {
  display: none !important;
}
/* to highlight scheudled games for the teams viw */
.game-scheduled {
  /*background-color: #a7abaf !important; /* 20% lighter than Bootstrap dark */
  /*color: #fff !important;*/
  /*font-weight: bold;*/
  padding: 6px 12px;
  border-radius: 4px;
  margin-bottom: 4px;
  display: block;
  text-align: center;
}
.game-scheduled-task {
  text-decoration: line-through !important;
  color: #888 !important;
  font-size: 1em !important;
  font-weight: 500 !important;
}
.game-unscheduled-task {
  color: #222 !important;
  font-size: 1em !important;
  font-weight: 500 !important;
}
.game-scheduled {
  text-decoration: line-through !important;
  color: #888 !important;
  font-size: 1em !important;
  font-weight: 500;
}
.game-unscheduled {
  color: #222 !important;
  font-size: 1em !important;
  font-weight: 500;
}
.list-group.small .list-group-item, .list-group.small .game-scheduled-task, .list-group.small .game-unscheduled-task {
  font-size: 1em !important;
}

.list-group-item .game-scheduled-task, .list-group-item .game-unscheduled-task {
  background: none !important;
}

/* Remove Bootstrap's .small font size from .list-group.small */
.list-group.small {
  font-size: 1em !important;
}
/* Sticky right-side game list */
.sticky-schedule-box {
  position: sticky;
  top: 90px; /* Adjust to account for your header/navbar */
  z-index: 10;
}
.fc-event {
  cursor: pointer !important;
}

/*NAVBAR HEADINGS  ///////////////////////////////////*/
.sidebar-dark-primary .main-sidebar .nav-header,
.sidebar .main-sidebar .nav-header,
.main-sidebar .nav-header {
            color: #fff !important;
            font-weight: bold;
            letter-spacing: 1px;
        }


        /*PUBLIC CSS///////////////*/

        .public-container {
  width: 100%;
  max-width: 1500px;
  padding-left: 1rem;
  padding-right: 1rem;
  margin-left: auto;
  margin-right: auto;
}

/* ===== RESPONSIVE ADMIN MODALS ===== */
/* Responsive modal sizing for admin calendar modals */

/* Resend modal styles (moved from inline in email dashboard) */
.resend-panel {
  background-color: #eaf8ff;
}
.resend-input {
  background-color: #ffffff;
}
.resend-input.invalid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.2rem rgba(220,53,69,.25);
}
.resend-helper {
  font-size: 0.875rem;
  color: #0056b3;
  margin-top: 0.25rem;
}

/* Custom calendar tooltip styling to match admin: white background, black text, black border */
.ba-calendar-tooltip .tooltip-inner {
  color: #000 !important;
  background-color: #fff !important;
  border: 1px solid #000 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
  padding: 0.35rem 0.6rem;
}
.ba-calendar-tooltip .arrow::before {
  border-top-color: #fff !important; /* for top placement */
  border-bottom-color: #fff !important; /* for bottom placement */
}
/* Left-align notes inside our custom tooltip while keeping other lines centered or default. */
.ba-calendar-tooltip .ba-tooltip-notes {
  display: block;
  text-align: left !important;
  white-space: pre-wrap; /* honor newlines converted to <br> or preserved whitespace */
}
/* Location / Surface presentation: bold and wrap sensibly. */
.ba-calendar-tooltip .ba-tooltip-loc {
  display: block;
  text-align: center; /* keep default centered unless we split into lines */
  white-space: normal;
}
.ba-calendar-tooltip .ba-tooltip-loc strong {
  font-weight: 700;
}
.modal-dialog.admin-modal {
    /* Width stays responsive with Bootstrap */
    max-width: 600px; /* Between modal-md (500px) and modal-lg (800px) */
    font-size: 0.875rem; /* Reduce base font size */
}

/* Height management - key for laptops and smaller screens */
.modal-dialog.admin-modal .modal-content {
    max-height: 85vh; /* Never exceed 85% of viewport height */
}

.modal-dialog.admin-modal .modal-header {
    padding: 0.5rem 0.75rem; /* Reduced header padding */
}

.modal-dialog.admin-modal .modal-body {
    max-height: 60vh; /* Scrollable body if content is too tall */
    overflow-y: auto;
    padding: 0.5rem; /* Much tighter padding */
}

.modal-dialog.admin-modal .modal-footer {
    padding: 0.5rem 0.75rem; /* Reduced footer padding */
}

/* Compact form styling for better density */
.modal-dialog.admin-modal .form-group {
    margin-bottom: 0.25rem; /* Much tighter spacing */
}

.modal-dialog.admin-modal .form-control {
    padding: 0.25rem 0.5rem; /* Smaller input padding */
    font-size: 0.875rem; /* Smaller input text */
    margin-bottom: 0.125rem; /* Minimal bottom margin */
}

.modal-dialog.admin-modal label {
    margin-bottom: 0.125rem; /* Minimal label spacing */
    font-size: 0.8rem; /* Smaller label text */
    font-weight: 500;
}

.modal-dialog.admin-modal .btn {
    padding: 0.25rem 0.5rem; /* Smaller button padding */
    font-size: 0.8rem; /* Smaller button text */
    margin: 0.125rem; /* Minimal button margins */
}

.modal-dialog.admin-modal .card-body {
    padding: 0.5rem; /* Much tighter card padding */
}

.modal-dialog.admin-modal .card {
    margin-bottom: 0.25rem; /* Minimal card spacing */
}

.modal-dialog.admin-modal .row {
    margin-left: -0.25rem;
    margin-right: -0.25rem;
}

.modal-dialog.admin-modal .col-md-6,
.modal-dialog.admin-modal .col-sm-6,
.modal-dialog.admin-modal .col-12 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

/* Responsive breakpoints */
@media (max-height: 800px) {
    .modal-dialog.admin-modal .modal-body {
        max-height: 50vh; /* Even smaller on short screens */
        padding: 0.375rem; /* Even tighter on short screens */
    }

    .modal-dialog.admin-modal .form-group {
        margin-bottom: 0.125rem; /* Ultra-tight on short screens */
    }
}

@media (max-width: 768px) {
    .modal-dialog.admin-modal {
        max-width: 95%; /* Nearly full width on mobile */
        margin: 0.25rem auto; /* Minimal top/bottom margin */
        font-size: 0.8rem; /* Even smaller on mobile */
    }

    .modal-dialog.admin-modal .modal-body {
        padding: 0.375rem; /* Ultra-tight on mobile */
    }

    .modal-dialog.admin-modal .form-control {
        padding: 0.125rem 0.375rem; /* Ultra-compact inputs */
        font-size: 0.8rem;
    }

    .modal-dialog.admin-modal label {
        font-size: 0.75rem; /* Tiny labels on mobile */
    }

    .modal-dialog.admin-modal .btn {
        padding: 0.125rem 0.375rem; /* Tiny buttons */
        font-size: 0.75rem;
    }
}

/* Ensure modal tabs don't take too much space */
.modal-dialog.admin-modal .nav-tabs {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
}


