@import url(https://fonts.googleapis.com/css?family=Montserrat|Montserrat:b);
@import url(https://fonts.googleapis.com/css?family=Dosis|Dosis:b);
@import url(https://fonts.googleapis.com/css?family=Arvo|Arvo:b);
@import url(https://fonts.googleapis.com/css?family=Titillium|Titillium:b);
@import url(https://fonts.googleapis.com/css?family=Open+Sans|Open+Sans:b);
@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,700;1,400;1,700&display=swap);
#root {
  min-height: 100vh;
  background-color: #FCFCF9;
  position: relative;
}

:root {
  --row-height: 75px;
  --bg-main: #f9fafb;
  --default-black: #171212;
  --default-red: #B73C3A;
  --kinect-assistant-send-button-width: 70px;
  --kinect-assistant-send-button-height: 50px;
  --header-z-index: 1200;
  --sidebar-z-index: 999;
  --sidedrawer-z-index: 1300;
  --chat-button-z-index: 1200;
  --kinect-assistant-z-index: 1400;
  --toggle-button-z-index: 1005;
  --popup-z-index: 1304;
  --side-bar-width: 225px;
  --nav-bar-height: 64px;

  --sd-radius: 8px;
  --sd-radius-sm: 12px;
  --sd-border: #e5e7eb;
  --sd-border-focus: var(--default-red);
  --sd-ring: rgba(255, 111, 111, 0.25);
  --sd-bg: #ffffff;
  --sd-text: var(--default-black);
  --sd-muted: #6b7280;
  --sd-hover: #f8fafc;
  --sd-active: #ffeeee;
  --sd-shadow: 0 10px 15px rgba(0, 0, 0, .08), 0 4px 6px rgba(0, 0, 0, .05);

  --chat-drawer-input-height: 85px;
  --chat-drawer-height: 600px;
  --chat-drawer-header: 73px;

  --chat-page-height: 70vh;
}

[data-theme='dark'] {
  /* * We skip all heights, widths, and z-indexes here.
   * They will automatically inherit from :root! 
   */

  /* Brand Colors */
  --default-red: #D14A48;
  /* Slightly brighter red to ensure good contrast on dark backgrounds */

  /* Thematic Colors */
  --bg-main: #161616;
  --sd-border: #374151;
  /* Medium-dark gray for subtle borders */
  --sd-bg: #1e1e1e;
  /* Deep dark gray for card backgrounds */
  --sd-text: #eaebec;
  /* Crisp off-white text (overrides the --default-black) */
  --sd-muted: #9ca3af;
  /* Lighter gray for secondary text to remain readable */

  /* Interaction States */
  --sd-hover: #2d3748;
  /* Slightly lighter gray for hover states */
  --sd-active: rgba(183, 60, 58, 0.2);
  /* A sheer red tint for active items */
  --sd-ring: rgba(255, 111, 111, 0.4);
  /* Slightly more opaque focus ring */

  /* Shadows need to be darker to show up on dark backgrounds */
  --sd-shadow: 0 10px 15px rgba(0, 0, 0, 0.6), 0 4px 6px rgba(0, 0, 0, 0.4);
}

/* Typography Base */
h1 {
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  color: var(--sd-text);
  /* Pulls #171212 in light, #f9fafb in dark */
}

h3 {
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  color: var(--sd-text);
  /* Use primary text for headers */
}

p {
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  color: var(--sd-muted);
  /* Use muted gray for body text to reduce eye strain */
}

div {
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  /* Bumping to 300; 100 is often illegible on dark backgrounds */
  color: var(--sd-text);
}

/* Global Body Styling */
body {
  background-color: var(--bg-main);
  color: var(--sd-text);
  transition: background-color 0.3s ease, color 0.3s ease;
  margin: 0;
  padding: 0;
}

/* Link Styling */
a {
  color: var(--sd-text);
  transition: color 0.2s ease;
}

/* Navigation Buttons */
a.navButton {
  text-decoration: none;
  color: var(--sd-text);
  font-weight: 500;
}

a.navButton:link,
a.navButton:visited {
  color: var(--sd-text);
}

a.navButton:hover {
  cursor: pointer;
  color: var(--default-red);
  /* Using your brand red for hover instead of generic gray */
}

a.navButton:active {
  opacity: 0.7;
}

/*

FORMS

*/

.red {
  color: red !important;
}

.error {
  font-family: montserrat;
  text-decoration-color: blue;
  color: red !important;
  font-weight: lighter;
  padding: 2px;
  width: 49%;
}

.error h3 {
  color: red !important;
}

.error-input-field {
  border: 1px solid red !important;
}

.error p {
  color: red !important;
}

.event-link a {
  color: var(--default-black);
}

.form-div {
  width: 96%;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  margin: 2%;
}

.form-label1 {
  font-family: montserrat;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  font-weight: lighter;
  padding: 2px;
  width: 100%;
}

.form-label2 {
  font-family: montserrat;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  font-weight: lighter;
  padding: 12px 20px;
  width: 49%;
  border-radius: 4px;
}

.form-label3 {
  font-family: montserrat;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  font-weight: lighter;
  padding: 2px;
  width: 33%;
}

.form-label4 {
  font-family: montserrat;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  font-weight: lighter;
  padding: 2px;
  width: 25%;
}

.form-label5 {
  font-family: montserrat;
  text-decoration-color: #B73C3A
    /*c3322d*/
  ;
  font-weight: lighter;
  padding: 2px;
  width: 20%;
}

.password {
  position: relative;
}

.password input {
  margin: 0 0 0 4px;
  border: 0;
}

.password img {
  display: block;
  position: absolute;
  top: 22.5px;
  right: 10px;
  cursor: pointer;
}

input {
  background-color: var(--sd-bg);
}

​ input[type="checkbox"] {
  color: #B73C3A
    /*c3322d*/
  ;
  border-radius: 50%;
}

​ input[type="checkbox"]:checked:hover {
  color: #B73C3A !important;
  /*c3322d*/
}

input:checked~.checkmark {
  background-color: #B73C3A !important;
  /*c3322d*/
  ;
}

input[type=submit] {
  border: 2px solid #37474f;
  color: white;
  background-color: #ff5722;
  padding: 15px 32px;
  text-align: center;
  display: inline-block;
  font-size: 16px;
}

input[type=submit]:hover {
  border: 2px solid #37474f;
  color: white;
  background-color: #ff5722;
  padding: 15px 32px;
  text-align: center;
  display: inline-block;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
  font-size: 16px;
}

input[type=text] {
  width: 100%;
  font-family: montserrat;
  font-weight: lighter;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=number] {
  width: 100%;
  font-family: montserrat;
  font-weight: lighter;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

.number-error {
  border: 1px solid red !important;
}

input[type=texterror] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid red;
  border-radius: 4px;
}

input[type=email] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type="given name"] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type="family name"] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=phone] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=scell] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=password] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=emailerror] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid red;
  border-radius: 4px;
}

label[type="checkbox"] {
  margin-left: 10px;
}

input[type=adressline1] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=addressline2] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=province] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=postalcode] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

input[type=country] {
  width: 100%;
  font-weight: lighter;
  font-family: montserrat;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
}

.alphabetBar {
  display: flex;
  width: 100%;
  justify-content: center;
  flex-wrap: wrap;
}

.alphabetButton {
  flex-grow: 1;
  flex-shrink: 2;
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  border-radius: 5px;
  color: #ffffff;
  background-color: #B73C3A
    /*c3322d*/
  ;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  font-size: 12px;
}

.alphabetButton:hover {
  border: 1px solid #191c22;
  color: white;
  background-color: #ef5350;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.back-button {
  border: none;
  background-color: var(--bg-main);
}

.button {
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  border-radius: 15px;
  color: #ffffff;
  background-color: #B73C3A
    /*c3322d*/
  ;
  padding: 10px 16px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 12px;
}

.black-button {
  border: 1px solid #191c22;
  border-radius: 4px;
  color: #ffffff;
  background-color: #191c22;
  padding: 10px 16px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 12px;
}

.black-button:hover {
  border: 1px solid #191c22;
  color: #191c22;
  background-color: white;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.grey {
  background-color: lightgrey !important;
}

.white-button {
  border: 1px solid #191c22;
  border-radius: 4px;
  color: #191c22;
  background-color: white;
  padding: 10px 16px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 12px;
}

.white-button:hover {
  border: 1px solid white;
  color: #191c22;
  background-color: rgb(230, 214, 214);
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

/* =========================================
   MODERN BUTTON HIERARCHY
   ========================================= */

.button-primary {
  background-color: var(--default-red, #8A2B2B);
  color: #ffffff;
  border: 2px solid var(--default-red, #8A2B2B);
  padding: 8px 16px;
  border-radius: 12px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.button-primary:hover {
  background-color: #702121;
  /* Slightly darker red */
  border-color: #702121;
}

.button-secondary {
  background-color: transparent;
  color: #8A2B2B;
  border: 2px solid var(--default-red, #8A2B2B);
  padding: 8px 16px;
  border-radius: 12px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.button-secondary:hover {
  background-color: var(--default-red, #8A2B2B);
  color: #ffffff;
}

/* Dark Mode support for secondary button */
[data-theme='dark'] .button-secondary {
  color: #f87171;
  /* Lighter red for visibility */
  border-color: #f87171;
}

[data-theme='dark'] .button-secondary:hover {
  background-color: #f87171;
  color: #111827;
}

/* =========================================
   DANGER ZONE CARD
   ========================================= */
.danger-zone-card {
  margin-top: 40px;
  border: 1px solid #fca5a5;
  /* Light red border */
  border-radius: 8px;
  background-color: transparent;
  overflow: hidden;
}

.danger-zone-header {
  background-color: #fef2f2;
  /* Very faint red background */
  padding: 12px 16px;
  border-bottom: 1px solid #fca5a5;
}

.danger-zone-header h4 {
  margin: 0;
  color: #991b1b;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.danger-zone-content {
  padding: 0 16px;
}

.danger-action-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 0;
  gap: 16px;
}

.danger-divider {
  height: 1px;
  background-color: var(--sd-border, #e5e7eb);
}

.danger-action-text strong {
  display: block;
  font-size: 14px;
  color: var(--sd-text, #111827);
  margin-bottom: 4px;
}

.danger-action-text p {
  margin: 0;
  font-size: 13px;
  color: var(--sd-muted, #6b7280);
  line-height: 1.4;
}

/* =========================================
   DANGER BUTTONS
   ========================================= */
/* A bright, alarming red that contrasts with your maroon brand color */

.button-danger {
  background-color: #dc2626;
  color: #ffffff;
  border: 2px solid #dc2626;
  padding: 8px 16px;
  border-radius: 6px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  /* Prevents button text from wrapping */
}

.button-danger:hover {
  background-color: #b91c1c;
  border-color: #b91c1c;
}

.button-danger-outline {
  background-color: transparent;
  color: #dc2626;
  border: 2px solid #dc2626;
  padding: 8px 16px;
  border-radius: 6px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.button-danger-outline:hover {
  background-color: #dc2626;
  color: #ffffff;
}

/* Mobile stacking for Danger Zone */
@media (max-width: 768px) {
  .danger-action-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .button-danger,
  .button-danger-outline {
    width: 100%;
    text-align: center;
  }
}

.temporaryPassPage {
  width: 100%;
}

.centered-image {
  margin-left: auto;
  margin-right: auto;
  display: block;
}

.centered-text {
  text-align: center;
}

.img {
  max-height: 100%;
  max-width: 100%;
}

.button:hover {
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  color: white;
  background-color: #ef5350;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.small-button {
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  border-radius: 4px;
  color: #ffffff;
  background-color: #B73C3A
    /*c3322d*/
  ;
  padding: 4px 8px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 12px;
}

.small-button:hover {
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  color: white;
  background-color: #ef5350;
  box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.demo-button {
  border: 1px solid #B73C3A
    /*c3322d*/
  ;
  color: #ffffff;
  background-color: #B73C3A
    /*c3322d*/
  ;
  padding: 10px 48px;
  border-radius: 4px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 12px;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.demo-button:hover {
  border: 1px solid #191c22;
  border-radius: 4px;
  color: white;
  background-color: #191c22;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.select-button {
  border: 2px solid #191c22;
  color: #ffffff;
  background-color: #B73C3A
    /*c3322d*/
  ;
  padding: 15px 32px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 16px;
}

.select-button:hover {
  border: 2px solid #191c22;
  color: white;
  background-color: #ef5350;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.landing-page-multi-screen-banner {
  width: 100%;
  background: rgb(230, 214, 214);
  background: linear-gradient(0deg, rgba(230, 214, 214, 1) 0%, rgba(255, 255, 255, 1) 100%);
  min-height: 600px;
  padding: 4%;
}

.landing-page-hand-holding-phone {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(255, 255, 255, 1);
  background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(230, 214, 214, 1) 100%);
  padding: 4%;
}

.landing-page-revenue-up {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(230, 214, 214);
  background: linear-gradient(0deg, rgba(230, 214, 214, 1) 0%, rgba(255, 255, 255, 1) 100%);
  overflow: hidden;
  padding: 4%;
}

.landing-page-grow-memberships {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(255, 255, 255, 1);
  background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(230, 214, 214, 1) 100%);
  min-height: 600px;
}

.landing-page-why-kinect {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(230, 214, 214);
  background: linear-gradient(0deg, rgba(230, 214, 214, 1) 0%, rgba(255, 255, 255, 1) 100%);
  padding: 2%;
  flex-wrap: wrap;
  align-items: flex-start;
}

.why-kinect-blurb {
  padding: 5%;
}

.landing-page-grow-memberships-img {
  width: 50%;
}

.icon {
  height: 100px;
}


.ditch-the-fob-page {
  display: flex;
  justify-content: center;
  background: rgb(195, 50, 45);
  background: -moz-linear-gradient(12deg, rgba(195, 50, 45, 1) 6%, rgba(148, 45, 41, 1) 28%, rgba(195, 50, 45, 1) 44%, rgba(193, 50, 45, 1) 68%, rgba(148, 45, 41, 1) 77%);
  background: -webkit-linear-gradient(12deg, rgba(195, 50, 45, 1) 6%, rgba(148, 45, 41, 1) 28%, rgba(195, 50, 45, 1) 44%, rgba(193, 50, 45, 1) 68%, rgba(148, 45, 41, 1) 77%);
  background: linear-gradient(12deg, rgba(195, 50, 45, 1) 6%, rgba(148, 45, 41, 1) 28%, rgba(195, 50, 45, 1) 44%, rgba(193, 50, 45, 1) 68%, rgba(148, 45, 41, 1) 77%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c3322d", endColorstr="#942d29", GradientType=1);
  min-height: calc(100vh - 400px);
}

.ditch-the-fob-text {
  width: 50%;
  color: white;
  padding: 5%;
  justify-content: center;
  align-items: center;
  display: flex;
  flex-wrap: wrap;
}

.ditch-the-fob-right-panel {
  width: 50%;
  background-color: #efefef;
  margin-top: 50px;
  border-top-left-radius: 80px;
  padding: 8%;
}

.ditch-the-fob-header {
  margin-top: 10%;
  margin-bottom: 10%;
}

.ditch-the-fob-left-text {
  display: flex;
  justify-content: center;
  align-items: center;
}

.ditch-the-fob-left-text p {
  color: white;
  font-size: 18px;
}

.ditch-the-fob-app-img {
  max-width: 80%;
}

.watch-demo-video-button {
  border: #c3322d;
  border-radius: 4px;
  color: white;
  background-color: #c3322d;
  padding: 10px 16px;
  margin: 1px;
  transition: background-color .5s ease-in-out;
  text-align: center;
  display: inline-block;
  font-size: 18px;
  font-weight: 100;
}

.watch-demo-video-button:hover {
  color: white;
  border: #d9322d;
  background-color: #d9322d;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.wrap-content {
  height: fit-content;
}

.black-kinect {
  width: 50%;
}

.white-kinect {
  width: 75%;
  display: flex;
  margin: auto;
}

.canada-flag-woosh {
  width: 25%;
  float: right;
}

.float-right {
  float: right;
  justify-content: right;
}

.float-left {
  float: left;
}

.demo-request-form-parent {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: white;
  flex-wrap: wrap;
}

.demo-request-form-text {
  margin-left: 20%;
  margin-right: 20%;
  padding: 10px;
  color: black;
}

.contact-page {
  background-color: rgb(230, 214, 214);
  ;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.contact-text {
  margin: 10%;
  padding: 10px;
}

.contact-text h3 {
  color: #2d2929;
}

.contact-text p {
  color: #2d2929;
}

.contact-text h2 {
  color: #2d2929;
}

.contact-text a {
  color: #2d2929;
}

.contact-text a:hover {
  color: #c3322d;
}

.not-found-page {
  display: flex;
  min-height: 50vh;
  justify-content: center;
  align-items: center;
}

.contact-form-background {
  width: 600px;
  padding: 1%;
  margin: 1%;
  background-color: white;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
  border-radius: 4px;
}

.under-contact {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: white;
  flex-wrap: wrap;
}

.under-contact-text {
  margin-left: auto;
  margin-right: auto;
  padding: 10px;
}

.under-contact-text h2 {
  color: #171212;
}

.why-kinect-box {
  background-color: rgb(19, 18, 18, 0.9);
  margin-left: 1%;
  margin-right: 1%;
  margin-bottom: 1%;
  font-size: 16px;
  text-align: center;
  width: 30%;
  padding: 20px;
  height: 150px;
}

.why-kinect-box p {
  color: white;
}

.why-kinect-box h3 {
  color: white;
}

.image-parent {
  text-decoration: none;
}

.image-parent a:hover {
  text-decoration: none;
}

.under-header-website {
  margin-top: 60px;
  left: 0;
  right: 0;
  width: 100%;
}

.homepage {
  left: 0;
  right: 0;
  width: 100%;
}

.aboutUsText {
  margin-left: 10%;
  margin-right: 10%;
  float: center;
  color: white;
  font-weight: 400;
}

.aboutUsText h1 {
  text-align: center;
}

.landingPageText {
  width: auto;
  margin: auto;
  float: center;
  color: #191c22;
  margin: 10%;
}

.landingPageText h1 {
  color: #191c22;
  font-size: 64px;
  text-decoration: none;
}

.landingPageText p {
  color: #191c22;
}

.landingPageText a:hover {
  text-decoration: none;
}

.landingPageText:hover {
  text-decoration: none;
}

.buttons-spacer {
  flex: 1;
}

.add-event-pass-sidedrawer {
  height: 100%;
  box-shadow: 2px 0px 5px #000000;
  border-left: 1px var(--sd-border);
  position: fixed;
  top: 0;
  z-index: var(--sidedrawer-z-index);
  right: 0;
  width: 70%;
  max-width: 8 00px;
  transform: translateY(-100%);
  transition: transform 0.3s ease-out;
  overflow-y: auto;
  padding: 24px;
  background-color: var(--sd-bg);
}

.nested-side-drawer {
  width: 100%;
}

.add-event-pass-sidedrawer.open {
  transform: translateY(0);
}

.add-event-pass-sidedrawer ul {
  height: 100%;
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #191c22;
}

.add-event-pass-sidedrawer li {
  margin: 0.5rem 0;
}

.add-event-pass-sidedrawer a {
  color: var(--default-red);
  font-family: montserrat;
  font-stretch: expanded;
  letter-spacing: .1rem;
  font-size: 16px;
}

.add-event-pass-sidedrawer a:hover,
.add-event-pass-sidedrawer a:active {
  text-decoration: none;
  color: var(--default-black);
}

.kinect-assistant-chat-button-parent {
  float: right;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: var(--chat-button-z-index);
}

.kinect-assistant-chat-button {
  z-index: var(--chat-button-z-index);
  background-color: var(--default-red);
  border-radius: 50%;
  height: 75px;
  width: 75px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.kinect-assistant-chat-page-form {
  display: inline;
  position: fixed;
  bottom: 0px;
  left: var(--side-bar-width);
  right: 0px;
  padding: 2%;
}

.kinect-assistant-chat-page-form input[type=text] {
  width: calc(100% - var(--kinect-assistant-send-button-width));
  font-family: montserrat;
  font-weight: lighter;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid lightgrey;
  border-radius: 4px;
  right: 0;
}

.kinect-assistant-send-button {
  width: var(--kinect-assistant-send-button-width);
  height: var(--kinect-assistant-send-button-height);
  background-color: var(--default-red);
  border: none;
  color: white;
  border-radius: 4px;
}

.kinect-assistant-chat-drawer-history {
  overflow-y: scroll;
  height: calc(var(--chat-drawer-height) - var(--chat-drawer-header) - var(--chat-drawer-input-height));
  padding: 2%;
}

.kinect-assistant-chat-page-history {
  overflow-y: scroll;
  height: 70vh;
  padding: 2%;
}

.kinect-assistant-chat-drawer-history pre {
  width: 100%;
  white-space: pre-wrap;
  word-break: initial;
}

.kinect-assistant-thinking-div {
  display: flex;
  align-items: center;
  justify-content: center;
}

.kinect-assistant-thinking-div p {
  margin-top: auto;
  margin-bottom: auto;
}

.kinect-assistant-header {
  background-color: var(--default-red);
  display: flex;
  align-items: center;
  margin: 0;
  color: white;
  font-family: montserrat;
  padding: 2%;
  border-bottom: 1px solid var(--default-black);
  height: var(--chat-drawer-header);
}

.kinect-assistant-header h2 {
  margin-top: auto;
  margin-bottom: auto;
}


.close-button {
  background-color: transparent;
  border: none;
  height: 50px;
}

.notification-drawer {
  height: 400px;
  background-color: white;
  box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.5);
  position: fixed;
  bottom: 0px;
  z-index: var(--kinect-assistant-z-index);
  right: 0;
  max-width: 400px;
  width: 60%;
  transform: translateY(-100%);
  transition: transform 0.3s ease-out;
  overflow-y: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.notification-drawer.open {
  transform: translateY(0);
}

.notification {
  width: 100%;
}

.visit-notification {
  width: 100%;
}

.visit-notification-header {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  font-family: montserrat;
  padding: 1%;
  border-bottom: 1px solid var(--default-black);
}

.visit-notification-text {
  display: flex;
  justify-content: center;
}

.calendar-shifter {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100%
}

.popup {
  position: fixed;
  top: 20%;
  left: calc(50% - var(--side-bar-width));
  z-index: var(--popup-z-index);
  background-color: var(--sd-bg);
  width: 400px;
  border: 4px solid var(--sd-border);
  border-radius: 15px;
  overflow-y: auto;
  max-height: 80vh;
  padding: 2%;
}

.event-template-popup {
  position: fixed;
  top: 20%;
  left: calc(50% - var(--side-bar-width));
  z-index: var(--popup-z-index);
  background-color: white;
  width: 600px;
  border: 4px solid #bcbcbc;
  border-radius: 15px;
  overflow-y: auto;
  max-height: 80vh;
  padding: 2%;
}

.fixed-popup {
  position: fixed;
  left: 40%;
  z-index: var(--popup-z-index);
  background-color: white;
  min-width: 400px;
  margin-left: -200px;
  margin-top: -150px;
  border: 1px solid #191c22;
  overflow-y: auto;
  max-height: 80vh;
  max-width: 80vh;
}

.popup-content {
  margin: 2%;
}

.search-from-list-popup {
  position: absolute;
  left: 50%;
  z-index: var(--popup-z-index);
  background-color: white;
  min-width: 400px;
  margin-left: -200px;
  margin-top: -150px;
  border: 1px solid #191c22;
}

.charge-side-drawer-text-fields {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.charge-side-drawer-text {
  width: 49%;
}

.temporary-pass-creator-popup {
  position: fixed;
  top: 35%;
  left: 50%;
  z-index: var(--popup-z-index);
  background-color: white;
  min-width: 450px;
  max-height: 550px;
  margin-left: -175px;
  margin-top: -150px;
  border: 1px solid #191c22;
}

.temporary-pass-range-scroller {
  overflow-y: auto;
  white-space: nowrap;
  max-height: 250px;
}

.none {
  display: none;
}

.help-popup {
  position: fixed;
  top: 2%;
  left: 25%;
  right: 15%;
  z-index: var(--popup-z-index);
  background-color: var(--sd-bg);
  min-width: 400px;
  width: fit-content;
  /* margin-left: -150px; */
  /* margin-top: -150px; */
  border: 1px solid var(--sd-border);
  border-radius: 15px;
  padding: 2%;
  max-height: 96vh;
  overflow: auto;
}

.help-icon {
  float: right;
}

.help-icon-header {
  height: fit-content;
  display: flex;
  align-items: center;
}

.help-icon-header-text {
  display: inline-block;
  height: auto;
  vertical-align: center;
}

.help-icon-header-icon {
  display: inline-block;
  margin: 10px;
}

.help-icon-header h1 {
  margin: 0;
}

.help-icon-header h2 {
  margin: 0;
}

.help-icon-header h3 {
  margin: 0;
}

.archive-plan-popup {
  position: fixed;
  top: 20%;
  left: 35%;
  z-index: var(--popup-z-index);
  background-color: white;
  min-width: 400px;
  margin-top: 50px;
  margin-right: 200px;
  border: 1px solid #191c22;
}

.weeklyCalendar {
  display: flex;
  position: relative;
  font-size: 16px;
  height: inherit;
  overflow-y: scroll;
}

.weeklyCalendarColumn {
  margin: 0px;
}

.weeklyCalendarCell {
  height: var(--row-height);
  margin: 0px;
  border: 1px solid grey;
}

.weeklyCalendarEventCell {
  background-color: #2c2c2c;
  color: white;
  font-size: 14px;
  line-height: 10px;
  position: absolute;
  z-index: 1000;
  border-radius: 4px;
  border: 1px solid white;
  padding: .5%;
  overflow: auto;
}

.weeklyCalendarEventCell p {
  color: white !important;
}

.weeklyCalendarCellBorderless {
  height: var(--row-height);
  margin: 0px;
  text-align: center;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  background-color: white;
  z-index: 1001;
}

.weeklyCalendarCellHourLabel {
  height: var(--row-height);
  margin: 0px;
  border: 1px solid #fff;
  text-align: center;
  padding-top: px;
}

.demo-video-page {
  width: 100%;
  background: rgb(230, 214, 214);
  background: linear-gradient(0deg, rgba(230, 214, 214, 1) 0%, rgba(255, 255, 255, 1) 100%);
  min-height: 600px;
  padding: 10%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.demo-video-text {
  float: center;
  padding: 2%;
}

.demo-video-video {
  width: 708px;
  height: 400px;
}

.video {
  width: 100%;
  height: 95%;
}

.label-search-dropdown {
  display: flex;
  align-content: center;
  align-items: center;
}

.label-tag {
  display: inline-flex;
  align-items: center;
  /* vertical centering */
  gap: 6px;
  padding: 0.1em 0.5em;
  border: 1px solid;
  border-radius: 0.5em;
  line-height: 1;
  /* keeps it tight */
}

.label-text,
.label-tag>* {
  line-height: 1;
  margin: 0;
  /* important if label-text is a <p>, <h*>, etc. */
}

.reservation-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.reservation-location {
  display: inline-block;
  position: relative;
  width: 40%;
}

.reservation-start {
  display: inline-block;
  position: relative;
  width: 30%;
}

.reservation-end {
  display: inline-block;
  position: relative;
  width: 30%;
}

.reservation-location-header {
  display: inline-block;
  position: relative;
  width: 40%;
  min-width: 70px;
}

.reservation-start-header {
  display: inline-block;
  position: relative;
  width: 30%;
}

.reservation-end-header {
  display: inline-block;
  position: relative;
  width: 30%;
}

.event-dropdown-filter {
  width: fit-content;
}

.event-filters-bar {
  height: 64px;
  display: flex;
  flex-wrap: nowrap;
}

.kinect-components-event-small-tab {
  display: flex;
  font-size: 14px;
  flex-wrap: nowrap;
  flex-direction: row;
  align-content: space-between;
  justify-content: space-evenly;
  width: 330px;
  border-bottom: solid .5px white;
  padding: 5px 0px 5px 0px;
}

.kinect-components-event-small-tab-name {
  width: 50%;
  margin: 0 10px 0 10px;
}

.kinect-components-event-small-tab-time {
  width: 25%;
  margin: 0 10px 0 10px;
}

.kinect-components-event-small-tab-book {
  width: 25%;
  margin: 0 10px 0 10px;
  color: #1d1919;
  height: 25px;
}

.kinect-components-day-block {
  background-color: #1d1919;
  color: white;
  display: flex;
  width: 350px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: start;
  flex-direction: column;
  margin: 2px;
  border-radius: 15px;
  padding: 10px 10px 10px 10px;
}

.kinect-components-day-block p {
  color: white;
}

.kinect-components-day-block h3 {
  color: white;
}

.kinect-components-week-events-scroll-arrow {
  position: absolute;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  border: none;
  z-index: 1000;
}

.kinect-components-week-events-scroll-arrow-left {
  left: 0;
}

.kinect-components-week-events-scroll-arrow-right {
  right: 0;
}

.kinect-components-day-block-selected {
  border: 2px solid var(--default-red);
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
}

.kinect-components-week-events ::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}

.kinect-components-week-events ::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

.membership-inline {
  display: flex;
}

.text-button {
  border: none;
  background-color: transparent;
  padding: 0;
  padding-left: 2px;
  color: var(--default-red);
  display: inline-flex;
  /* keep the inline nature of buttons */
  align-items: flex-start;
  /* this is default */
}

@media (max-width: 768px) {
  .weeklyCalendarEventCell {
    font-size: 10px;
    line-height: 10px;
    padding: 1px;
    overflow: auto;
  }

  .weeklyCalendarEventCell p {
    padding: 0%;
    margin: 1px;
  }
}

.plan-tabs-parent {
  position: relative;
  display: flex;
  text-align: center;
  flex-direction: row;
  flex-flow: row wrap;
  align-items: top;
  justify-content: center;
  /**/
}

@media (max-width: 1290px) {
  .plan-tab {
    flex-basis: 25%;
  }
}

@media (max-width: 992px) {
  .plan-tab {
    flex-basis: 75%;
  }
}


.plan-tab-content {
  position: relative;
  align-self: center;
  float: center;
  width: 100%;
}

.menu-button {
  height: 15px;
  width: 10px;
  display: flex;
  z-index: 1004;
  flex-direction: column;
  justify-content: space-around;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  box-sizing: border-box;
}

.menu-button:focus {
  outline: none;
}

.menu-child {
  width: 100%;
  height: 30px;
  border: none;
  background-color: #171212;
  color: white;
}

.menu-child:hover {
  width: 100%;
  border: none;
  background-color: #363a49;
}

.menu-child:focus {
  outline: none;
}

.menu-dot {
  width: 3px;
  height: 3px;
  background: var(--sd-border);
  border-radius: .1em;
}

.menu-wrapper {
  display: inline-block;
  width: inherit;
  height: 50px;
  padding-top: 5px;
  width: 95%;
}

.menu-content-parent {
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 1000;
}

.menu-content {
  color: #424242;
  position: relative;
  float: center;
  background-color: white
    /*#1b181c*/
  ;
  opacity: 0.90;
  box-shadow: .2rem .2rem .2rem #e0e0e0;
  border: 1px solid #bdbdbd;
}

.menu-content ul {
  list-style: none;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.gym-billing-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.gym-billing-name {
  display: inline-block;
  position: relative;
  width: 35%;
}

.gym-billing-status {
  display: inline-block;
  position: relative;
  width: 35%;
}

.gym-billing-resumes-on {
  display: inline-block;
  position: relative;
  width: 30%;
}

.temporary-pass-door-tab {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
}

.temporary-pass-door-name {
  display: inline-block;
  position: relative;
  width: 25%;
}

.temporary-pass-door-button {
  display: inline-block;
  position: relative;
  width: 40%;
}

.tempoary-pass-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.temporary-pass-email {
  display: inline-block;
  position: relative;
  width: 35%;
}

.temporary-pass-day {
  display: inline-block;
  position: relative;
  width: 20%;
}

.temporary-pass-uses {
  display: inline-block;
  position: relative;
  width: 10%;
}

.temporary-pass-facility {
  display: inline-block;
  position: relative;
  width: 25%;
}

.event-pass-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.event-pass-name {
  display: inline-block;
  position: relative;
  width: 30%;
}

.event-pass-type {
  display: inline-block;
  position: relative;
  width: 15%;
}

.event-pass-applied-events {
  display: inline-block;
  position: relative;
  width: 15%;
}

.event-pass-claimed-passes {
  display: inline-block;
  position: relative;
  width: 15%;
}

.event-pass-labels {
  display: inline-block;
  position: relative;
  width: 20%;
}

.event-pass-handle {
  display: inline-block;
  position: relative;
  width: 5%;
}

.handle-button {
  background-color: transparent;
  border: none;
}

.pass-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
  padding: 10px 12px;
  background-color: var(--sd-bg);
}

.visit-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  padding: 10px;
}

.visit-tab-profile-pic {
  width: 15%;
}

.visit-name {
  display: inline-block;
  position: relative;
  width: 25%;
}

.visit-date {
  display: inline-block;
  position: relative;
  width: 25%;
}

.visit-door-reason {
  display: inline-block;
  position: relative;
  width: 30%;
}

.visit-status {
  display: inline-block;
  position: relative;
  width: 15%;
}

.visit-door {
  display: inline-block;
  position: relative;
  width: 15%;
}

.ticket-tab-summary {
  display: inline-block;
  position: relative;
  width: 30%;
}

.ticket-tab-status {
  display: inline-block;
  position: relative;
  width: 25%;
}

.ticket-tab-assignee {
  display: inline-block;
  position: relative;
  width: 25%;
}

.ticket-tab-updated {
  display: inline-block;
  position: relative;
  width: 20%;
}

.claimed-pass-name {
  display: inline-block;
  position: relative;
  width: 20%;
}

.claimed-pass-uses {
  display: inline-block;
  position: relative;
  width: 10%;
}

.claimed-pass-remaining {
  display: inline-block;
  position: relative;
  width: 15%;
}

.claimed-pass-status {
  display: inline-block;
  position: relative;
  width: 20%;
}

.claimed-pass-created {
  display: inline-block;
  position: relative;
  width: 15%;
}

.claimed-pass-expires {
  display: inline-block;
  position: relative;
  width: 20%;
}

.transaction-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.transaction-amount {
  display: inline-block;
  position: relative;
  width: 15%;
}

.transaction-fee {
  display: inline-block;
  position: relative;
  width: 15%;
}

.transaction-net {
  display: inline-block;
  position: relative;
  width: 15%;
}

.transaction-created {
  display: inline-block;
  position: relative;
  width: 25%;
}

.transaction-member {
  display: inline-block;
  position: relative;
  width: 30%;
}

.payout-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.payout-amount {
  display: inline-block;
  position: relative;
  width: 15%;
}

.payout-status {
  display: inline-block;
  position: relative;
  width: 30%;
}

.payout-due {
  display: inline-block;
  position: relative;
  width: 30%;
}

.refund-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.refund-amount {
  display: inline-block;
  position: relative;
  width: 15%;
}

.refund-status {
  display: inline-block;
  position: relative;
  width: 25%;
}

.refund-due {
  display: inline-block;
  position: relative;
  width: 25%;
}

.refund-member {
  display: inline-block;
  position: relative;
  width: 30%;
}

.charge-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.charge-amount {
  display: inline-block;
  position: relative;
  width: 15%;
}

.charge-member {
  display: inline-block;
  position: relative;
  width: 30%;
}

.charge-status {
  display: inline-block;
  position: relative;
  width: 20%;
}

.charge-due {
  display: inline-block;
  position: relative;
  width: 20%;
}

.charge-processor {
  display: inline-block;
  position: relative;
  width: 15%;
}

.door-tab-name {
  display: inline-block;
  position: relative;
  width: 25%;
}

.door-tab-status {
  display: inline-block;
  position: relative;
  width: 20%;
}

.door-tab-state {
  display: inline-block;
  position: relative;
  width: 20%;
}

.door-tab-timer {
  display: inline-block;
  position: relative;
  width: 30%;
}

.kinect-components-break {
  flex-basis: 100%;
  height: 0;
}

.kinect-components-break {
  flex-basis: 100%;
  height: 0;
}

.kinect-components-big-header h1 {
  font-weight: 200;
  font-size: 60px;
}

.kinect-components-small-text {
  font-size: 18px;
}

.kinect-components-align-top {
  vertical-align: super;
}

.kinect-components-selected-plan-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.kinect-components-selected-plan-name {
  display: inline-block;
  position: relative;
  width: 30%;
}

.kinect-components-selected-plan-cost {
  display: inline-block;
  position: relative;
  width: 15%;
}

.kinect-components-selected-plan-access {
  display: inline-block;
  position: relative;
  width: 20%;
}

.kinect-components-selected-plan-passes {
  display: inline-block;
  position: relative;
  width: 20%;
}

.kinect-components-selected-plan-remove {
  display: inline-block;
  position: relative;
  width: 15%;
}

.comments-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 1rem 0;
  padding: 0;
}

.comments-list.empty {
  color: #888;
  font-style: italic;
  padding: 0.5rem;
}

.comment-item {
  display: flex;
  align-items: flex-start;
  background: #f9f9f9;
  border-radius: 4px;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  border-bottom: 1px solid #e0e0e0;
}

.avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  margin-right: 1rem;
  flex-shrink: 0;
}

.comment-content {
  flex: 1;
}

.comment-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.3rem;
}

.comment-author {
  font-weight: 600;
  color: #333;
}

.comment-date {
  font-size: 0.85rem;
  color: #666;
}

.comment-body {
  font-size: 1rem;
  line-height: 1.4;
  color: #222;
}

@media (max-width: 992px) {
  .kinect-components-selected-plan-name {
    width: 50%;
  }

  .kinect-components-selected-plan-cost {
    width: 20%;
  }

  .kinect-components-selected-plan-access {
    width: 0%;
  }

  .kinect-components-selected-plan-passes {
    width: 0%;
  }

  .kinect-components-selected-plan-remove {
    width: 30%;
  }
}

.vertically-centered {
  align-items: center;
  height: fit-content;
  display: flex;
}

.invoice {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.hovering {
  background-color: var(--sd-hover) !important;
}

.invoice-amount {
  display: inline-block;
  position: relative;
  float: center;
  width: 10%;
}

.invoice-status {
  display: inline-block;
  position: relative;
  width: 15%;
}

.invoice-due {
  display: inline-block;
  position: relative;
  width: 10%;
}

.invoice-member {
  display: inline-block;
  position: relative;
  float: center;
  width: 25%;
}

.invoice-number {
  display: inline-block;
  position: relative;
  width: 25%;
}

.invoice-processor {
  display: inline-block;
  position: relative;
  width: 15%;
}

.invoice-spacer {
  display: inline-block;
  position: relative;
  float: center;
  width: 20%;
}

.invoice-download {
  display: inline-block;
  position: relative;
  float: center;
  width: 40%;
  float: left;
  padding-top: 5px;
}

.invoice-totals-labels {
  display: inline-block;
  position: relative;
  float: center;
  width: 20%;
  float: right;
}

.invoice-totals {
  display: inline-block;
  position: relative;
  float: center;
  width: 20%;
  float: right;
}

.line-item {
  width: 100%;
  height: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  padding: 10px;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
  background-color: var(--sd-muted);
}

.line-item-amount {
  display: inline-block;
  position: relative;
  float: center;
  width: 20%;
  font-size: 100%;
}

.line-item-description {
  display: inline-block;
  position: relative;
  float: center;
  width: 80%;
  font-size: 100%;
}

.line-item-dark {
  background-color: var(--sd-hover);
}

.side-drawer-notes {
  width: 100%;
}

.note-tab {
  margin-top: 0px;
  margin-bottom: 0px;
  margin-left: 10px;
  margin-right: 10px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.note-comment {
  display: inline-block;
  position: relative;
  float: center;
  width: 70%;
}

.note-date {
  display: inline-block;
  position: relative;
  float: center;
  width: 20%;
}

.note-delete {
  display: inline-block;
  position: relative;
  float: center;
  width: 10%;
}

@media (max-width: 880px) {
  .invoice {
    font-size: 12px;
  }

  .note-tab {
    font-size: 12px;
  }

  .invoice-amount {
    width: 15%;
    font-size: 12px;
  }

  .invoice-status {
    display: inline-block;
    position: relative;
    width: 20%;
    font-size: 12px;
  }

  .invoice-member {
    width: 30%;
    font-size: 12px;
  }

  .invoice-due {
    width: 20%;
    font-size: 12px;
  }

  .invoice-number {
    display: none;
    width: 0%;
  }

  .invoice-processor {
    width: 15%;
    font-size: 12px;
  }

  .charge-amount {
    width: 17.5%;
    font-size: 12px;
  }

  .charge-status {
    width: 20%;
    font-size: 12px;
  }

  .charge-member {
    width: 30%;
    font-size: 12px;
  }

  .charge-due {
    width: 15%;
    font-size: 12px;
  }

  .charge-processor {
    width: 15%;
    font-size: 12px;
  }

  .visit-name {
    font-size: 12px;
  }

  .visit-date {
    font-size: 12px;
  }

  .visit-time {
    font-size: 12px;
  }

  .visit-reason {
    font-size: 12px;
  }

  .visit-door {
    font-size: 12px;
  }

  .visit-status {
    font-size: 12px;
  }

  .event-pass-name {
    font-size: 12px;
  }

  .event-pass-type {
    font-size: 12px;
  }

  .event-pass-applied-events {
    font-size: 10px;
  }

  .event-pass-claimed-passes {
    font-size: 10px;
  }
}

.finance-labels {
  width: 50%;
  display: inline-block;
}

.finance-values {
  display: inline-block;
  width: 50%;
  position: relative;
  padding-left: 3%;
}

.gift-card-tab-amount {
  width: 14%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.gift-card-tab-email {
  width: 44%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.gift-card-tab-status {
  width: 14%;
  display: inline-block;
  position: relative;
  padding: 1px;
}


.membership-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.membership-tab-name {
  width: 25%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.membership-tab-index {
  width: 4%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.membership-tab-plan {
  width: 25%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.membership-tab-status {
  width: 10%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.membership-tab-payment-processor {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.membership-tab-payment-platform {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.kinect-desk-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.kinect-desk-tab-name {
  width: 32%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.kinect-desk-tab-paired {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.kinect-desk-tab-activated {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.kinect-desk-tab-ip {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.kinect-desk-tab-connected {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.kinect-desk-tab-index {
  width: 4%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.green {
  background-color: #C7EFCF;
}

.red {
  background-color: #CF3943;
}

.grey {
  background-color: #d9d9d9;
}

.yellow {
  background-color: #E1D884;
}

.member-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.member-tab-column {
  width: 27%;
  display: inline-block;
  position: relative;
  padding: 1px;
  vertical-align: top;
}

.member-tab-column-index {
  width: 4%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.member-tab-column-status {
  width: 15%;
  display: inline-block;
  position: relative;
  padding: 1px;
}

.member-tab-paid {
  background-color: #C7EFCF;
}

.blocked {
  background-color: #f9a150;
}

.member-tab-special {
  background-color: #7ce0e9;
}

.member-tab-unpaid {
  background-color: #CF3943;
}

.member-tab-inactive {
  background-color: #d9d9d9;
}

.member-tab-rejected {
  background-color: #f9a150;
}

.member-tab-pending {
  background-color: #d5f76f;
}

.member-tab-cancelling {
  background-color: #E1D884;
}

.member-tab-paused {
  background-color: #83fdbe;
}

.member-tab:hover {
  opacity: 0.8;
}

.retry-payment-component {
  width: 100%;
}

.sub-nav-parent {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  border-bottom: 1px solid;
  width: 100%;
}

.border-right {
  border-right: 1px solid;
}

.border-left {
  border-left: 1px solid;
}

.portal-link {
  display: inline;
}

.spacer {
  flex: 1;
}

.form-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  font-family: montserrat;
  font-stretch: expanded;
  font-size: 14px;
  letter-spacing: .1rem;
}

.create-account-type-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  font-family: montserrat;
  font-stretch: expanded;
  font-size: 14px;
  letter-spacing: .1rem;
}

.create-account-type-parent {
  display: flex;
}

.create-account-type-parent h2 {
  color: white !important;
}

.create-account-type {
  height: 200px;
  width: 50%;
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
  padding: 5%;
  margin: 2%;
  border-radius: 15px;
  text-align: center;
  font-family: montserrat;
  font-stretch: expanded;
  font-size: 14px;
  letter-spacing: .1rem;
}

.create-account-member {
  background-color: #302525;
  color: white;
}

.create-account-owner {
  background-color: #b6504f;
  color: white;
}

.create-account-type:hover {
  opacity: .8;
}

.navButton {
  margin-right: 2%;
  display: inline-block;
  margin-top: -10px;
  font-family: montserrat;
  font-stretch: expanded;
  letter-spacing: .1rem;
  color: #795548;
  font-size: 14px;
}

.navButton a {
  font-weight: 500;
  letter-spacing: .1rem;
  font-family: montserrat;
  font-stretch: expanded;
  color: white;
}

.navButton a:hover {
  text-decoration: none;
  color: #ffcc80;
}

.navButton li {
  color: white;
}

#memberinfo {
  font-size: 18px;
  display: inline-block;
}

#no-points {
  list-style-type: none;
  font-size: 14px;
}

.small-p {
  font-size: 10px;
}

.main-div-parent {
  display: inline;
  width: 100%;
  max-width: 100vh;
  height: 100%;
}

.website-parent {
  position: relative;
}

.main-div {
  display: inline-block;
  font-family: montserrat;
  top: 60px;
  padding-left: var(--side-bar-width);
  width: 100%;
  height: 100%;
}

.main-div-no-sidebar {
  display: inline-block;
  top: 60px;
  width: 100%;
  height: 100%;
  min-height: calc(100vh - 400px);
}

.right-aligned {
  float: right;
}

.vertically-centered {
  align-items: center;
}

.login-parent-div {
  width: 90%;
  margin: 5%;
  text-align: center;
  margin-top: 100px;
}

.login-form-div {
  width: 96%;
  margin: 2%;
  text-align: center;
}

.login-form-div a {
  color: #2e2e2e;
}

.login-form-div a:hover {
  color: #B73C3A
    /*c3322d*/
  ;
}

.underHeader {
  margin-top: 60px;
  height: 100%;
}

.under-header-no-margin {
  margin-top: 60px;
  margin-right: 1%;
  height: 100%;
}

.content-parent {
  display: flex;
  position: relative;
  margin-top: 2%;
  margin-bottom: 2%;
  color: var(--sd-text);
  background-color: var(--sd-bg);
  border-radius: 4px;
  box-shadow: 0 2px 4px var(--sd-shadow);
  border: 1px solid var(--sd-border);
  border-radius: 12px;
}

.content-parent-half {
  display: inline-block;
  position: relative;
  margin-top: 1%;
  margin-bottom: 1%;
  color: var(--sd-text);
  background-color: var(--sd-bg);
  box-shadow: 0 2px 4px var(--sd-shadow);
  border: 1px solid var(--sd-border);
  width: 46.5%;
  border-radius: 12px;
}

.content-parent a {
  color: #B73C3A;
}

.content-parent a:hover {
  color: #424242
    /*c3322d*/
  ;
}

.content {
  margin: 2%;
  width: 96%;
}

.view-member-profile-picture-parent {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-height: 300px;
}

.align-center {
  width: inherit;
  align-self: center;
}

.customer-buttons-parent {
  float: center;
  display: inline-block;
  width: 100%;
}

.customer-button {
  margin: 2%;
  padding: 2%;
  width: 25%;
  display: inline-block;
}


.one-left {
  display: inline-block;
  position: relative;
  padding: 1px;
  float: left;
  text-align: left;
  width: 100%;
  height: 100%;
  margin-bottom: 2%;
  margin-top: 2%;
  margin-left: 2%;
  margin-right: 2%;
}

.graph-padding {
  margin: 2%;
}

.parent {
  position: relative;
  display: inline-block;
  width: 100%;
}

.one-full {
  display: inline-block;
  width: 100%;
  position: relative;
}

.center {
  float: center;
}

.one-half {
  display: inline-block;
  width: 50%;
  position: relative;
}

.two-thirds {
  display: inline-block;
  width: 66%;
  position: relative;
}


.one-third {
  display: inline-block;
  position: relative;
  width: 33.33%;
}

.one-quarter {
  display: inline-block;
  position: relative;
  padding: 1px;
  width: 25%;
  float: center;
  text-align: center;
  margin-bottom: 2%;
}

.one-third p {
  color: #455a64;
}

.checkout {
  display: inline-block;
  position: relative;
  padding: 2px;
  width: 100%;
  min-width: 400px;
  float: center;
  text-align: center;
}

.MyDatePicker {
  float: left;
  position: relative;
  display: flex;
  flex-direction: column;
}

.MyDatePicker * {
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Chrome/Safari/Opera */
  -khtml-user-select: none;
  /* Konqueror */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
  /* Non-prefixed version, currently */
}

.mdp-input {
  float: left;
  width: 150px;
  height: 35px;
  overflow: hidden;
  border-radius: 20px;
}

.mdp-input input:focus {
  outline: none;
}

.mdp-input input {
  width: 130%;
  background: var(--bg-main);
  border: none;
  padding-right: 10px;
  height: 35px;
  text-align: center;
  letter-spacing: 2px;
  font-size: 11px;
  cursor: pointer;
}

.mdp-container {
  float: left;
  z-index: 1005;
  width: 400px;
  min-height: 350px;
  background: var(--bg-main);
  box-shadow: 10px 10px 40px rgba(0, 0, 0, 0.2);
  border-radius: 20px;
  padding: 25px 30px;
}

.mdpc-head {
  float: left;
  width: 100%;
  height: 53px;
}

.mdpc-body {
  float: left;
  width: 100%;
  margin-top: 20px;
}

/**
 * Controls
 */

.mdpch-button {
  float: left;
  width: 45px;
  height: 100%;
  box-sizing: border-box;
  position: relative;
}

.mdpchb-inner:hover>span {
  border-color: #555 !important;
}

.mdpchb-inner:hover {
  cursor: pointer;
  background: var(--sd-hover);
}

.mdpchb-inner {
  float: left;
  height: 35px;
  width: 35px;
  background: var(--sd-bg);
  border-radius: 100%;
  line-height: 35px;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -17px;
  margin-top: -17px;
}

.mdpchbi-right-arrows:after,
.mdpchbi-left-arrows:after,
.mdpchbi-right-arrow,
.mdpchbi-right-arrows,
.mdpchbi-left-arrow,
.mdpchbi-left-arrows {
  display: block;
  float: left;
  width: 6px;
  height: 6px;
  border-left: 2px solid #888;
  border-bottom: 2px solid #888;
  position: absolute;
}

.mdpchbi-right-arrow,
.mdpchbi-right-arrows,
.mdpchbi-left-arrow,
.mdpchbi-left-arrows {
  transform: rotate(45deg);
  left: 50%;
  top: 50%;
  margin-left: -2px;
  margin-top: -4px;
}

.mdpchbi-right-arrows,
.mdpchbi-right-arrow {
  transform: rotate(225deg);
  margin-left: -4px;
}

.mdpchbi-right-arrows:after,
.mdpchbi-left-arrows:after {
  content: '';
}

.mdpchbi-left-arrows {
  margin-left: -5px;
}

.mdpchbi-right-arrows {
  margin-left: -2px;
}

.mdpchbi-right-arrows:after,
.mdpchbi-left-arrows:after {
  left: 3px;
  top: -5px
}


.mdpch-container {
  float: left;
  width: 120px;
  height: 100%;
}

.mdpchc-year {
  float: left;
  width: 100%;
  height: 30px;
  font-size: 27px;
  color: var(--sd-text);
  font-weight: 200px;
  text-align: center;
}

.mdpchc-month {
  float: left;
  width: 100%;
  height: 15px;
  font-size: 13px;
  color: var(--sd-text);
  font-weight: 200px;
  text-align: center;
}

/**
 *  Calendar
 */
.cc-month,
.cc-head,
.cch-name,
.cc-body,
.cdc-day span,
.cdc-day,
.c-day-container,
.c-container {
  position: relative;
  display: block;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.c-container {
  width: 100%;
  height: 100%;
  margin-top: -20px;
}

.cc-month {
  height: 30px;
  width: 100%;
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  line-height: 30px;
  color: var(--sd-text);
}

.cc-head {
  height: 30px;
  width: 100%;
  margin-top: -10px;
}

.cch-name {
  width: 14.285%;
  height: 30px;
  line-height: 30px;
  font-weight: 700;
  color: var(--sd-text);
  font-size: 9px;
  text-align: center;
}

.cc-body {
  height: 270px;
  width: 100%;
}

.c-day-container {
  width: 14.285%;
  height: 16.6666%;
}

.cdc-day {
  width: 100%;
  height: 100%;
  font-size: 12px;
  font-weight: 300;
  color: var(--sd-text);
  text-align: center;
}

.cdc-day span {
  width: 100%;
  height: 100%;
  font-size: 12px;
  font-weight: 300;
  color: var(--sd-text);
}

.cdc-day span:hover {
  cursor: pointer;
  background: var(--sd-hover);
}

.cdc-day span {
  width: 30px;
  height: 30px;
  margin-top: -15px;
  margin-left: -15px;
  left: 50%;
  top: 50%;
  font-weight: 400;
  border-radius: 100%;
  line-height: 30px;
}

.c-day-container.disabled {
  pointer-events: none;
}

.c-day-container.disabled .cdc-day span {
  color: var(--sd-text);
}

.c-day-container.disabled .cdc-day span {
  background: var(--sd-muted) !important;
}

.c-day-container.highlight .cdc-day span {
  background: #efdbca;
}

.c-day-container.highlight-green .cdc-day span {
  background: #d4e2cb;
}

.mem-row-link {
  display: contents;
  /* Makes the Link "invisible" to the CSS Grid */
  text-decoration: none;
  color: inherit;
}

/*
  BAR CHART STUFF

*/

.title {
  font-size: 12pt;
}

.bar-group .name-label {
  text-anchor: end;
  font-weight: 300;
  font-size: 1em;
  fill: #000;
}

.bar-group .vaue-label-#191c22 {
  text-anchor: end;
  font-weight: 300;
  font-size: 1em;
  fill: #000;
}

.bar-group .value-label {
  text-anchor: end;
  fill: #fff;
  text-shadow: 1px 1px #191c22;
  font-size: 1em;
}

.activeStep {
  color: #191c22;
}

.inactiveStep {
  color: darkgrey;
  opacity: 0.5;
}

.completedStep {
  color: #171212;
  opacity: 0.9;
}

.day-range {
  display: flex;
  flex-wrap: wrap;
}

/*

CUSTOM Selected

*/

.custom-select select {
  width: 96%;
  margin: auto;
  padding: 12px 20px;
  margin: 8px 0;
  border: 1px solid var(--sd-border);
  border-radius: 4px;
  background-color: var(--sd-bg);
}

.faqHtmlDiv {
  width: 100%;
  padding: 1%;
}

.faqHtmlDiv img {
  max-width: 100%;
  padding: 1%;
}

.add-participant-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  padding: 10px;
}

.add-participant-profile-pic {
  width: 25%;
}

.add-participant-info {
  width: 50%;
}

.add-participant-button {
  width: 25%;
}

.event-tab {
  width: 100%;
  height: 100%;
  font-size: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.event-name {
  display: inline-block;
  position: relative;
  width: 28%;
}

.event-location {
  display: inline-block;
  position: relative;
  width: 30%;
}

.event-start {
  display: inline-block;
  position: relative;
  width: 20%;
}

.event-end {
  display: inline-block;
  position: relative;
  width: 20%;
}

@media (max-width: 880px) {
  .event-location {
    width: 30%;
    font-size: 12px;
  }

  .event-start {
    width: 20%;
    font-size: 12px;
  }

  .event-end {
    width: 20%;
    font-size: 12px;
  }

  .event-name {
    font-size: 12px;
  }

}

.support-directory-parent {
  display: flex;
  flex-wrap: wrap;
}

/* 
.support-directory-tab {
  min-width: 200px;
  min-height: 100px;
  max-width: 300px;
  max-height: 200px;
  background-color: var(--default-red);
  color: white;
  border: 1px solid lightgrey;
  padding: 2%;
  display: flex;
  justify-content: center;
  border-radius: 15px;
  margin: 2%;
  align-items: center;
  align-content: center;
  box-shadow: 1px;
}

.support-directory-tab:hover {
  background-color: #ef5350;
} */

.support-directory-tab {
  min-width: 200px;
  min-height: 100px;
  max-width: 300px;
  max-height: 200px;
  background-color: var(--default-red);
  color: white;
  border: none;
  padding: 20px 30px;
  display: flex;
  flex: 1;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  border-radius: 20px;
  margin: 20px;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
  font-weight: 600;
  transition: all 0.3s ease;
  gap: 12px;
  cursor: pointer;
  font-family: montserrat;
}

.support-directory-tab:hover {
  background-color: #e53935;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
  transform: translateY(-2px);
}

.support-directory-tab img {
  width: 32px;
  height: 32px;
  filter: brightness(0) invert(1);
  /* ensures icons appear white */
}

@media (max-width: 1140px) {
  .main-div {
    padding-left: 0px;
    float: center;
  }
}

@media (max-width: 768px) {
  .main-div {
    width: 100%;
    float: left;
  }

  .one-third {
    width: 100%;
    margin-bottom: 10%;
  }

  .one-half {
    width: 100%;
  }

  .add-event-pass-sidedrawer {
    width: 100%;
  }

  .update-membership-sidedrawer {
    width: 100%;
  }

  .member-tab {
    font-size: 80%;
  }

  .help-popup {
    min-width: 200px;
    margin-left: -60px;
  }

  .mdp-container {
    left: 0%;
    width: 100%;
  }

  .profile-pic-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
  }

  .profile-pic {
    max-width: 96%;
    object-fit: cover;
    border-radius: 15px;
  }

  .view-member-profile-picture-parent {
    max-height: 100%;
    max-width: 96%;
  }
}

/*


WEBSITE


*/

.demo-request-parent {
  background-color: white;
  border: 1px solid white;
  padding: 15px;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
  border-radius: 5px;
}

.flex-parent {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.white-background {
  background-color: white;
}

.client-review-parent {
  padding: 5%;
}

.client-review-parent h1 {
  font-size: 46px;
  font-weight: 500;
  font-stretch: expanded;
}

.client-review {
  border: 2px solid #37474f;
  padding: 2%;
  flex: 1;
  flex-grow: 1;
  margin: 5px;
}

.black-transparent-background {
  background-color: rgb(19, 18, 18, 0.7);
  border-radius: 5px;
  color: #f1f1f1;
  padding: 2%;
}

.black-transparent-background p {
  color: #f1f1f1;
}

.main-features-parent {
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
  padding: 2%;
  padding-bottom: 5%;
  vertical-align: top;
  background: rgb(224, 224, 224);
}

.main-features-header {
  width: 100%;
  margin: auto;
  float: center;
  text-align: center;
}

.main-features-header h1 {
  color: #2d2929;
  font-weight: 400;
}

.main-feature {
  width: 400px;
  display: flex;
  flex-wrap: wrap;
  border-radius: 2%;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
  margin: 4%;
  height: 450px;
  color: #2d2929;
  padding: 40px;
  align-items: center;
  justify-content: flex-start;
  background: white;
}

.main-feature-header {
  width: 60%;
  padding: 2%;
}

.features-img {
  width: 40%;
  padding: 2%;
}

.main-feature h2 {
  font-size: 24px;
  font-family: 'Poppins';
  font-weight: 500;
  color: #2d2929;
}

.main-feature p {
  color: #2d2929;
}

.textBanner {
  background-color: #171212;
  color: white;
  padding-top: 1%;
  padding-bottom: 1%;
  text-align: center;
}

.textBanner h2 {
  color: white;
}

.panel {
  display: flex;
  background-color: rgba(195, 50, 45, 0.8);
  color: white;
  align-items: center;
  justify-content: center;
  padding: 5%;
  margin: 4%;
  flex-wrap: wrap;
}

.panel-main {
  margin: auto;
}

.panel-text {}

.break {
  flex-basis: 100%;
  height: 0;
}

footer {
  color: white;
  background-color: #2d2929;
  text-align: left;
  font-family: 'Poppins';
  width: 100%;
  height: 400px;
  bottom: 0px;
}

footer ul {
  list-style: none;
  text-align: left;
  color: white;
}

footer li {
  color: white;
}

footer a {
  color: white;
}

footer a:hover {
  color: #B73C3A
    /*c3322d*/
  ;
}

footer h1 {
  font: 'Poppins Bold', sans-serif;
  font-weight: 500;
  color: white;
}

footer h3 {
  font: 'Poppins Bold', sans-serif;
  color: white;
}

footer p {
  color: white;
  text-align: left;
}

.footer-parent {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: nowrap;
}

.page {
  padding: 1%;
}

.logo-div {
  height: 100%;
}

.profile-pic-container {
  max-width: 300px;
  max-height: inherit;
}

.profile-pic {
  max-width: 100%;
  max-height: 250px;
  object-fit: cover;
  border-radius: 15px;
}

.profile-pic-tab-icon {
  max-width: 100%;
  max-height: 80px;
  object-fit: cover;
  border-radius: 15px;
}

.footer-column {
  padding: 2%;
  width: 22%;
  margin: 1%;
  text-align: left;
  display: flex;
  align-self: flex-start;
  flex-wrap: wrap;
  justify-content: center;
}

.footer-copyright {
  margin: auto;
  width: 100%;
  text-align: center;
  padding-left: 5%;
}

.features-list {
  color: white;
}

.pricing-background {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  color: white;
  background: rgb(224, 224, 224);
  width: 100%;
  min-height: 100vh;
}

.pricing-square {
  display: flex;
  width: 250px;
  margin: 2%;
  background-color: white;
  height: 250px;
  border-radius: 5px;
  box-shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19);
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  flex-direction: column;
}

.features-table {
  border-collapse: collapse;
  border-spacing: 20px 12px;
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  margin-top: 75px;
  margin-bottom: 50px;
  font-size: 14px;
}

.features-table td {
  padding: 10px;
  min-width: 200px;
}

.features-table th {
  padding: 10px;
  font-size: 16px;
}

@media (max-width: 900px) {
  .footer-column {
    width: 47%;
  }

  .footer-parent {
    flex-wrap: wrap;
  }

  footer {
    height: 560px;
  }

  .website-parent {}

  .features-table {
    border-collapse: collapse;
    border-spacing: 10px 6px;
    background-color: rgba(255, 255, 255, 0.8);
    color: #191c22;
    margin-top: 75px;
    margin-bottom: 50px;
  }

  .dark-row {
    background-color: rgba(200, 200, 200, 0.8);
  }

  .features-table td {
    padding: 5px;
    min-width: 10px;
    font-size: 12px;
    border-left: 1px solid rgba(100, 100, 100, 0.8);
    border-right: 1px solid rgba(100, 100, 100, 0.8);
  }

  .features-table th {
    padding: 5px;
    min-width: 10px;
    font-size: 12px;
    border-left: 1px solid rgba(100, 100, 100, 0.8);
    border-right: 1px solid rgba(100, 100, 100, 0.8);
  }

  .main-feature {
    width: 100%;
    padding: 15px;
  }

  .create-account-type {
    height: 200px;
    width: 100%;
  }

  .create-account-type-parent {
    flex-wrap: wrap;
  }

}

/* Customize the label (the checkbox-container) */
.checkbox-container {
  display: block;
  position: relative;
  padding-left: 15px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 14px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.checkbox-container input {
  visibility: hidden;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  border-radius: 50%;
  background-color: var(--sd-border);
}

/* On mouse-over, add a grey background color */
.checkbox-container:hover input~.checkmark {
  background-color: var(--sd-hover);
}

.checkbox-container:checked:hover input~.checkmark {
  background-color: var(--default-red) !important;
}

.checkmark-checked {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  border-radius: 50%;
  background-color: #B73C3A
    /*c3322d*/
  ;
}

/* Show the checkmark when checked */
.checkbox-container input:checked~.checkmark:after {
  display: block;
}

.sd {
  position: relative;
  width: 100%;
  font: 14px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color: var(--sd-text);
}

/* Input (the combobox) */
.sd [role="combobox"] {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 40px 10px 12px;
  /* right padding leaves room for toggle button */
  border: 1px solid #d1d5db;
  border-radius: var(--sd-radius);
  background: var(--sd-bg);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.sd [role="combobox"]::placeholder {
  color: #9ca3af;
}

.sd [role="combobox"]:focus {
  border-color: var(--sd-border-focus);
  box-shadow: 0 0 0 3px var(--sd-ring);
}

/* Toggle button (the chevron) */
.sd button[aria-label] {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius-sm);
  background: var(--sd-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}

.sd button[aria-label]:hover {
  background: #f9fafb;
}

/* Dropdown list */
/* Dropdown list */
.sd [role="listbox"] {
  position: absolute;
  display: flex;
  /* force vertical stacking regardless of global UL styles */
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  list-style: none;
  /* reset nav UL bullets */
  margin: 0;
  /* reset nav UL margins */
  overflow: auto;
  border: 1px solid var(--sd-border);
  background: var(--sd-bg);
  border-radius: var(--sd-radius);
  padding: 4px;
  box-shadow: var(--sd-shadow);
  z-index: 3000;
}

/* Ensure options are blocks even if parent CSS forces inline/floats */
.sd [role="listbox"]>[role="option"] {
  display: block;
  float: none;
  width: 100%;
  flex: 0 0 auto;
}

/* Default vertical position is handled inline (top). Upwards is bottom-aligned: */
.sd [role="listbox"][data-direction="up"] {
  /* styles are supplied inline for position */
}

/* Right-anchored list (when near right viewport edge) */
.sd [role="listbox"][data-align="right"] {
  /* left/right are handled inline */
}

/* Options */
.sd [role="option"] {
  padding: 8px 12px;
  border-radius: var(--sd-radius-sm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
}

/* Keep labels on one line with ellipsis to avoid ugly wrapping at edges */
.sd [role="option"]>div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}

.sd [role="option"] span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sd [role="option"]:hover {
  background: var(--sd-hover);
}

/* Selected option styling (the one with the checkmark) */
.sd [role="option"][aria-selected="true"] {
  font-weight: 600;
  background: var(--sd-active);
}

/* “No matches” row */
.sd .no-matches {
  color: var(--sd-muted);
}

/* Optional: subtle custom scrollbar (WebKit) */
.sd [role="listbox"]::-webkit-scrollbar {
  width: 10px;
}

.sd [role="listbox"]::-webkit-scrollbar-track {
  background: transparent;
}

.sd [role="listbox"]::-webkit-scrollbar-thumb {
  background: #e5e7eb;
  border-radius: 4px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.sd [role="listbox"]::-webkit-scrollbar-thumb:hover {
  background: #d1d5db;
}


.kinect-components-week-events {
  display: flex;
  position: relative;
  font-size: 14px;
  height: inherit;
  overflow-y: scroll;
  scrollbar-gutter: stable both-edges;
  width: fit-content;
  max-width: calc(100vw - var(--side-bar-width));
  padding-bottom: 10px;
}

.kinect-components-week-events ::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 7px;
}

.kinect-components-week-events ::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

  .sd *,
  .sd *::before,
  .sd *::after {
    transition: none !important;
  }
}

@media (max-width: 880px) {
  .event-dropdown-filter {
    width: 100%;
  }

  .event-filters-bar {
    flex-wrap: wrap;
    height: auto;
  }

  .membership-tab-payment-platform {
    display: none !important;
  }

  .membership-tab-name {
    width: 30%;
  }

  .membership-tab-index {
    width: 4%;
  }

  .membership-tab-plan {
    width: 25%;
  }

  .membership-tab-status {
    width: 20%;
  }

  .membership-tab-payment-processor {
    width: 20%;
  }

  /* .membership-tab-payment-platform: {
    display: none;
  } */

  .reservation-location-header {
    width: 40%;
    font-size: 10px;
  }

  .weeklyCalendarEventCell {
    font-size: 12px;
  }

  .reservation-start-header {
    width: 30%;
    font-size: 10px;
  }

  .reservation-end-header {
    width: 30%;
    font-size: 10px;
  }

  .reservation-location {
    width: 40%;
    font-size: 12px;
  }

  .reservation-start {
    width: 30%;
    font-size: 12px;
  }

  .reservation-end {
    width: 30%;
    font-size: 12px;
  }

  .contact-form-background {
    width: 98%;
  }

  .contact-page {
    height: 1275px;
  }

  .kinect-components-week-events-scroll-arrow {
    display: none;
  }

}

@media (max-width: 900px) {
  .accessSchedulePopup {
    position: fixed;
    top: 10%;
    width: 90%;
    margin-left: -17ƒ5px;
    margin: auto;
    margin-top: -50px;
  }

  .mobile-display-none {
    display: none;
  }

  .landingPageText h1 {
    color: #191c22;
    font-size: 48px;
    text-decoration: none;
  }

  .popup {
    width: 80vw;
    left: 10%;
  }

  .event-template-popup {
    width: 80vw;
    left: 10%;
  }

  .fixed-popup {
    min-width: 300px;
    margin-left: -160px;
  }

  .accessScheduleTimeSlotPicker {
    width: inherit;
  }

  .alphabetBar {
    display: none;
  }

  .clear-filter {
    display: none;
  }

  .landing-page-img {
    width: 100%;
  }

  .demo-video-page {
    padding: 1%;
  }

  .video {
    width: 100%;
    height: 225px;
  }

  .demo-video-text {
    width: 80%;
  }

  .demo-video-video {
    width: 398px;
    height: 225px;
  }

  .ditch-the-fob-right-panel h1 {
    font-size: 18px;
  }

  .ditch-the-fob-right-panel h2 {
    font-size: 16px;
  }

  .ditch-the-fob-text h3 {
    font-size: 18px;
  }

  .ditch-the-fob-left-text p {
    font-size: 14px;
    ;
  }

  .canada-flag-woosh {
    width: 50%;
  }

  .landing-page-hand-holding-phone {
    flex-wrap: wrap;
    max-height: none;
  }

  .landing-page-revenue-up {
    flex-wrap: wrap;
    min-height: none;
  }

  .landing-page-grow-memberships {
    flex-wrap: wrap;
    min-height: 200px;
  }

  .two-thirds {
    width: 100%;
  }

  .kinect-app-img {
    width: 50%;
    margin-left: 25%;
    margin-right: 25%;
  }

  .form-label2 {
    width: 100%;
  }

  .kinect-components-week-events {
    max-width: 100%;
  }
}
.notification-tab {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 24px;
    background-color: #fcecd7;
    border-bottom: 1px solid #f2d7b6;
    color: #1a1a1a;
}

.notification-tab-text {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
}

.notification-tab-text p {
    margin: 0;
}

.notification-tab-action {
    flex-shrink: 0;
    /* Prevents the action area from squishing on smaller screens */
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding-left: 16px;
}

/* Mobile responsiveness */
@media (max-width: 900px) {
    .notification-tab {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 16px 20px;
    }

    .notification-tab-action {
        width: 100%;
        justify-content: flex-start;
        /* Aligns button to the left on mobile */
        padding-left: 0;
    }
}
/* =========================================
   DESKTOP GRID STRUCTURE
   ========================================= */
.invoice-row-wrapper {
    position: relative;
}

/* This grid perfectly matches the 7 columns in your Header */
.invoice-header-row,
.invoice-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr 1fr 1.5fr 0.5fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
}

.invoice-row {
    background-color: var(--sd-bg, #ffffff);
    border-radius: 8px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
    border: 1px solid transparent;
}

.invoice-row:hover {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-border, #e5e7eb);
}

.inv-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #111827);
    overflow: hidden;
    /* Prevents long text from breaking grid */
}

/* CRITICAL FIX: Ensures the mobile dropdown menu doesn't get clipped by the column! */
.inv-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    overflow: visible !important;
}

/* =========================================
   COLUMN SPECIFIC WIDGETS
   ========================================= */
.inv-member {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
}

.inv-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--default-red, #8A2B2B);
    color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.inv-name-stack {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.inv-name {
    font-weight: 600;
    color: var(--sd-text, #111827);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amount-text {
    font-weight: 700;
    font-size: 15px;
    color: var(--sd-text, #111827);
}

.mono-hash {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    color: var(--sd-muted, #6b7280);
    font-size: 13px;
    background-color: var(--sd-bg, #f9fafb);
    padding: 4px 8px;
    border-radius: 4px;
    border: 1px solid var(--sd-border, #e5e7eb);
}

.processor-badge {
    font-weight: 500;
    color: var(--sd-muted, #6b7280);
    display: flex;
    align-items: center;
    gap: 6px;
}

/* =========================================
   STATUS PILLS
   ========================================= */
.inv-status {
    justify-content: center;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
    font-size: clamp(8.5px, 1.2vw, 11px);
    padding: clamp(2px, 0.5vw, 4px) clamp(5px, 1vw, 10px);
    letter-spacing: clamp(0em, 0.05vw, 0.05em);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pill-active {
    background-color: #dcfce7;
    color: #166534;
}

[data-theme='dark'] .pill-active {
    background-color: rgba(34, 197, 94, 0.15);
    color: #4ade80;
}

.pill-unpaid {
    background-color: #fee2e2;
    color: #991b1b;
}

[data-theme='dark'] .pill-unpaid {
    background-color: rgba(248, 113, 113, 0.15);
    color: #f87171;
}

.pill-draft {
    background-color: #e0f2fe;
    color: #075985;
}

[data-theme='dark'] .pill-draft {
    background-color: rgba(56, 189, 248, 0.15);
    color: #38bdf8;
}

.pill-void {
    background-color: #f3f4f6;
    color: #374151;
}

[data-theme='dark'] .pill-void {
    background-color: rgba(156, 163, 175, 0.15);
    color: #9ca3af;
}

/* =========================================
   ACTION BUTTONS & DROPDOWN
   ========================================= */
.action-btn {
    background: transparent;
    border: none;
    padding: 6px;
    cursor: pointer;
    color: var(--sd-muted, #6b7280);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.action-btn:hover {
    background-color: var(--sd-hover, #f3f4f6);
    color: var(--default-red, #8A2B2B);
}

.desktop-actions {
    display: flex;
    gap: 4px;
}

.mobile-actions-menu {
    display: none;
    position: relative;
}

.mobile-dropdown-content {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    background-color: var(--sd-bg, #ffffff);
    border: 1px solid var(--sd-border, #e5e7eb);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    z-index: 100;
    flex-direction: column;
    min-width: 140px;
    padding: 8px 0;
}

.mobile-dropdown-content button {
    background: none;
    border: none;
    padding: 10px 16px;
    text-align: left;
    color: var(--sd-text, #111827);
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
}

.mobile-dropdown-content button:hover {
    background-color: var(--sd-hover, #f3f4f6);
    color: var(--default-red, #8A2B2B);
}

/* =========================================
   MOBILE/TABLET TWO-ROW CARD LAYOUT (THE NUCLEAR FIX)
   ========================================= */
@media (max-width: 1048px) {

    /* Hide the global utility classes within the row */
    .mobile-hide,
    .tablet-hide {
        display: none !important;
    }

    /* 1. Hide the table headers */
    .invoice-header-row {
        display: none !important;
    }

    /* 2. Hardcode the Grid */
    .invoice-row {
        display: grid !important;
        width: 100% !important;
        /* COL 1 takes all remaining space. COL 2 strictly hugs the buttons/badges */
        grid-template-columns: 1fr minmax(auto, 90px) !important;
        grid-template-rows: auto auto auto auto !important;
        /* Changed to 4 rows */
        gap: 12px 16px !important;
        padding: 16px !important;
        margin-bottom: 8px !important;
        border: 1px solid var(--sd-border, #e5e7eb) !important;
    }

    /* --- ROW 1: Member & Actions --- */
    .inv-member {
        grid-column: 1 / 2 !important;
        grid-row: 1 / 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        /* Forces the browser to respect the boundaries */
    }

    .inv-actions {
        grid-column: 2 / 3 !important;
        grid-row: 1 / 2 !important;
        justify-content: flex-end !important;
    }

    /* --- ROW 2: Amount & Status --- */
    .inv-amount {
        grid-column: 1 / 2 !important;
        grid-row: 2 / 3 !important;
    }

    .inv-status {
        grid-column: 2 / 3 !important;
        grid-row: 2 / 3 !important;
        justify-content: flex-end !important;
    }

    /* --- ROW 3: Due Date & Processor --- */
    .inv-due {
        grid-column: 1 / 2 !important;
        grid-row: 3 / 4 !important;
        width: 100% !important;
        font-size: 13px !important;
        padding-top: 12px !important;
        border-top: 1px dashed var(--sd-border, #e5e7eb) !important;
    }

    .inv-due::before {
        content: "Due: ";
        color: var(--sd-muted, #6b7280);
        margin-right: 4px;
        font-weight: normal;
    }

    .inv-processor {
        display: flex !important;
        grid-column: 2 / 3 !important;
        grid-row: 3 / 4 !important;
        justify-content: flex-end !important;
        padding-top: 12px !important;
        border-top: 1px dashed var(--sd-border, #e5e7eb) !important;
        font-size: 13px !important;
    }

    /* --- ROW 4: Invoice Number --- */
    .inv-number {
        display: flex !important;
        grid-column: 1 / 3 !important;
        grid-row: 4 / 5 !important;
        width: 100% !important;
        justify-content: center !important;
        padding-top: 4px !important;
    }

    .inv-number .mono-hash {
        width: 100%;
        text-align: center;
    }

    /* --- FIX THE TEXT SQUISH --- */
    .inv-avatar {
        display: flex !important;
    }

    .inv-name-stack {
        flex: 1 !important;
        min-width: 0 !important;
    }

    .inv-name {
        display: block !important;
        white-space: normal !important;
        /* REMOVES the aggressive truncation */
        word-wrap: break-word !important;
        /* Lets long names wrap safely to a second line */
        width: 100% !important;
        font-size: 15px !important;
    }

    /* --- Toggle Menus --- */
    .desktop-actions {
        display: none !important;
    }

    .mobile-actions-menu {
        display: block !important;
    }

    .mobile-actions-menu:hover .mobile-dropdown-content,
    .mobile-actions-menu:focus-within .mobile-dropdown-content {
        display: flex !important;
    }
}
/* Container and Title */
.payouts-widget {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

.widget-title {
    font-size: 18px;
    font-weight: 700;
    /* Dark gray/black */
    margin: 0;
}

/* The Main Card */
.payouts-card {
    background-color: var(--sd-bg);
    border: 1px solid var(--sd-border);
    border-radius: 12px;
    box-shadow: 0 2px 4px var(--sd-shadow);
    overflow: hidden;
    /* Keeps the borders rounded even with the header background */
}

/* Grid Layout for Headers and Rows */
.payout-header-row,
.payout-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    /* 3 equal columns */
    align-items: center;
}

/* Header Specifics */
.payout-header-row {
    background-color: var(--sd-hover);
    /* Faint gray in light, slightly lighter gray in dark */
    border-bottom: 1px solid var(--sd-border);
    /* Very light gray */
    padding: 12px 20px;
}

.payout-header-cell {
    font-size: 12px;
    font-weight: 600;
    color: var(--sd-muted);
    /* Medium gray */
}

/* Row Specifics */
.payout-row {
    padding: 16px 20px;
    border-bottom: 1px solid var(--sd-border);
    transition: background-color 0.2s ease;
}

.payout-row:hover {
    background-color: var(--sd-hover);
    /* Very subtle hover effect */
}

/* Remove bottom border on the very last row */
.payout-row:last-child {
    border-bottom: none;
}

/* Cell Typography */
.payout-cell {
    font-size: 14px;
}

.payout-cell.amount {
    font-weight: 500;
    /* Slightly bolder amounts */
}

/* --- Status Pills (The green "paid" badge) --- */
.status-pill {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 9999px;
    /* Perfect pill shape */
    font-size: 12px;
    font-weight: 600;
    /* Forces 'paid' instead of 'Paid' to match mockup */
    text-align: center;
}

/* Green badge for Paid */
.status-paid {
    background-color: #dcfce7;
    color: #166534;
}

/* Yellow/Amber badge for Pending (Just in case you need it!) */
.status-pending {
    background-color: #fef3c7;
    color: #92400e;
}

/* Empty State Styling */
.empty-state {
    padding: 24px;
    text-align: center;
    font-size: 14px;
}
/* Main Card Container */
.kpi-card {
    background-color: var(--sd-bg);
    border: 1px solid var(--sd-border);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    padding: 20px 20px 0 20px;
    /* 0 bottom padding so the graph touches the bottom */
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 240px;
    font-family: 'Montserrat', sans-serif;
    overflow: hidden;
    /* Keeps the gradient contained within the rounded corners */
}

/* Header (Icon + Text) */
.kpi-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

/* Gray Icon Wrapper */
.kpi-icon-wrapper {
    background-color: var(--sd-hover);
    /* Subtle gray in light, darker gray in dark */
    border-radius: 8px;
    width: 44px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}

.kpi-icon {
    width: 24px;
    height: 24px;
    stroke: var(--sd-muted);
    /* Icon lines match the muted text theme */
}

/* Text Layout */
.kpi-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.kpi-label-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.kpi-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--sd-muted);
    /* Slate gray */
    letter-spacing: 0.02em;
}

.kpi-info-icon {
    width: 14px;
    height: 14px;
    cursor: help;
}

/* The Big Dollar Amount */
.kpi-amount {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: var(--sd-text);
    /* Near black */
    letter-spacing: -0.02em;
}

/* Sparkline Bottom Graph */
.kpi-sparkline {
    width: 100%;
    height: 40px;
    margin-left: -20px;
    /* Pulls it out to ignore the parent padding */
    margin-right: -20px;
    width: calc(100% + 40px);
    /* Stretches it to cover the negative margins */
}

.sparkline-svg {
    width: 100%;
    height: 100%;
    display: block;
    /* Removes tiny space below SVGs */
}

/* =========================================
   KPI ICON COLOR MODIFIERS
   ========================================= */

/* Base Wrapper Adjustments (if not already set) */
.kpi-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    /* Or 50% for circles */
}

.kpi-icon {
    width: 24px;
    height: 24px;
}

/* 1. Blue (Active Memberships) */
.wrapper-blue {
    background-color: #e0f2fe;
}

.wrapper-blue .kpi-icon {
    stroke: #0284c7;
}

/* 2. Green (Paid Members) */
.wrapper-green {
    background-color: #dcfce7;
}

.wrapper-green .kpi-icon {
    stroke: #16a34a;
}

/* 3. Teal (Available Balance) */
.wrapper-teal {
    background-color: #ccfbf1;
}

.wrapper-teal .kpi-icon {
    stroke: #0d9488;
}

/* 4. Amber (Unpaid Invoices) */
.wrapper-amber {
    background-color: #fef3c7;
}

.wrapper-amber .kpi-icon {
    stroke: #d97706;
}

/* Optional Dark Mode Support */
[data-theme='dark'] .wrapper-blue {
    background-color: rgba(2, 132, 199, 0.15);
}

[data-theme='dark'] .wrapper-blue .kpi-icon {
    stroke: #38bdf8;
}

[data-theme='dark'] .wrapper-green {
    background-color: rgba(22, 163, 74, 0.15);
}

[data-theme='dark'] .wrapper-green .kpi-icon {
    stroke: #4ade80;
}

[data-theme='dark'] .wrapper-teal {
    background-color: rgba(13, 148, 136, 0.15);
}

[data-theme='dark'] .wrapper-teal .kpi-icon {
    stroke: #2dd4bf;
}

[data-theme='dark'] .wrapper-amber {
    background-color: rgba(217, 119, 6, 0.15);
}

[data-theme='dark'] .wrapper-amber .kpi-icon {
    stroke: #fbbf24;
}
.kpi-cards-container {
    display: grid;
    /* This is the magic responsive line! */
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

/* Base layout for desktop: 2/3 for KPIs, 1/3 for Payouts */
.dashboard-grid-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    align-items: flex-start;
    margin-top: 32px;
}

.section-title {
    font-size: 18px;
    font-weight: 700;
    text-align: left;
    /* Fixes centering */
    margin-top: 0;
    margin-bottom: 16px;
}

/* =========================================
   MEMBER DETAILS HEADER & DROPDOWN
   ========================================= */

/* Make the 3-dot button perfectly square */
.button-secondary.icon-button {
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* The Dropdown Menu */
.action-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 240px;
    background-color: var(--sd-bg, #ffffff);
    border: 1px solid var(--sd-border, #e5e7eb);
    border-radius: 8px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    z-index: 100;
    display: flex;
    flex-direction: column;
    padding: 8px 0;
}

/* Dropdown Items */
.dropdown-item {
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    padding: 10px 16px;
    font-size: 14px;
    font-family: 'Montserrat', sans-serif;
    color: var(--sd-text, #374151);
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.dropdown-item:hover {
    background-color: var(--sd-hover, #f3f4f6);
}

.dropdown-item.loading {
    display: flex;
    justify-content: center;
    padding: 8px;
}

/* Destructive Actions */
.text-danger {
    color: #dc2626 !important;
    font-weight: 500;
}

.text-danger:hover {
    background-color: #fee2e2;
}

.text-success {
    color: #16a34a !important;
    font-weight: 500;
}

.dropdown-divider {
    height: 1px;
    background-color: var(--sd-border, #e5e7eb);
    margin: 4px 0;
}

/* Status Messages Styling */
.member-status-messages {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.status-msg {
    margin: 0;
    padding: 12px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
}

.status-msg.error {
    background-color: #fee2e2;
    color: #991b1b;
}

.status-msg.success {
    background-color: #dcfce7;
    color: #166534;
}

.status-msg.warning {
    background-color: #ffedd5;
    color: #9a3412;
}

/* =========================================
   PARENT GRID LAYOUT (Plans.js)
   ========================================= */
.plans-grid {
    display: grid;
    /* This automatically creates as many 320px columns as will fit on the screen */
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
    align-items: stretch;
}

/* =========================================
   MODERN PLAN CARD (PlanTab.js)
   ========================================= */
.modern-plan-card {
    background-color: var(--sd-bg, #ffffff);
    border-radius: 12px;
    border: 1px solid var(--sd-border, #e5e7eb);
    padding: 24px;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
}

.modern-plan-card:hover {
    border-color: var(--default-red, #8A2B2B);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    transform: translateY(-2px);
}

.archived-card {
    opacity: 0.6;
    background-color: var(--sd-body-bg, #f9fafb);
}

.archived-card:hover {
    border-color: var(--sd-border, #e5e7eb);
    transform: none;
    box-shadow: none;
}

/* 1. Header Area */
.plan-card-header {
    margin-bottom: 24px;
    width: 100%;
}

.plan-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--sd-text, #111827);
    line-height: 1.3;
    /* Add padding so a really long title won't overlap the floating menu */
    padding-right: 36px;
    text-align: left;
}

/* 2. Absolute positioning forces it into the corner regardless of the Menu component's internal CSS */
.plan-menu-wrapper {
    position: absolute;
    top: 24px;
    /* Matches the card's top padding */
    right: 16px;
    /* Pushes it flush to the right edge */
    margin: 0;
    /* Clears out the old negative margins */
}

/* 2. Pricing Area */
.plan-pricing-block {
    text-align: center;
    margin-bottom: 20px;
}

.plan-price-large {
    font-size: 48px;
    font-weight: 800;
    color: var(--sd-text, #111827);
    line-height: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.price-currency {
    font-size: 24px;
    font-weight: 600;
    margin-top: 6px;
    margin-right: 4px;
    color: var(--sd-muted, #6b7280);
}

.plan-billing-freq {
    margin-top: 8px;
    font-size: 14px;
    color: var(--sd-muted, #6b7280);
    font-weight: 500;
}

/* 3. Contract Pill */
.plan-contract-pill-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
}

/* 4. Details List */
.plan-details-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
    flex-grow: 1;
    /* Pushes the footer to the bottom of the card */
}

.plan-detail-item {
    margin: 0;
    font-size: 14px;
    color: var(--sd-text, #111827);
    line-height: 1.5;
    text-align: center;
}

/* 5. Footer Actions */
.plan-card-footer {
    display: flex;
    justify-content: space-around;
    padding-top: 16px;
    border-top: 1px solid var(--sd-border, #e5e7eb);
    margin-top: auto;
}

.flex-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--default-red, #8A2B2B);
    font-weight: 600;
}

.flex-btn svg {
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.flex-btn:hover svg {
    opacity: 1;
}

/* Tablet & Small Desktop View */
@media (max-width: 1150px) {
    .dashboard-grid-layout {
        /* Stack the Payouts widget under the KPI cards */
        grid-template-columns: 1fr;
    }
}

/* Mobile View Adjustments */
@media (max-width: 768px) {

    /* Assuming your sidebar disappears or shrinks on mobile */
    .dashboard-main-content {
        margin-left: 0;
        padding: 16px;
        /* Slightly tighter padding for mobile */
        width: 100%;
    }

    .kpi-cards-container {
        /* Cards can get a little smaller on mobile before stacking */
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
}

/* =========================================
   FACILITY CARD SPECIFICS
   ========================================= */
.facility-card {
    justify-content: flex-start;
}

.facility-address {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--sd-text, #111827);
    line-height: 1.5;
    background-color: var(--sd-body-bg, #f9fafb);
    padding: 16px;
    border-radius: 8px;
    border: 1px solid var(--sd-border, #e5e7eb);
}

[data-theme='dark'] .facility-address {
    background-color: rgba(0, 0, 0, 0.15);
    /* Sleek contrast for dark mode */
}

.location-icon {
    color: var(--default-red, #8A2B2B);
    flex-shrink: 0;
    margin-top: 2px;
}

.address-text {
    display: flex;
    flex-direction: column;
    font-size: 14px;
}

.address-label {
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--sd-muted, #9ca3af);
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.address-value {
    color: var(--sd-text, #d1d5db);
}

/* =========================================
   FINANCE NAVIGATION BAR
   ========================================= */
.finance-nav-bar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    /* Allows buttons to wrap nicely on mobile screens */
}

.finance-nav-bar .button-secondary {
    padding: 8px 16px;
    font-size: 13px;
}

/* =========================================
   FINANCE GRIDS
   ========================================= */
.finance-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 24px;
    align-items: stretch;
}

.finance-secondary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 24px;
    align-items: stretch;
}

/* =========================================
   SUMMARY CARDS & STAT ROWS
   ========================================= */
.summary-card {
    padding: 24px;
    display: flex;
    flex-direction: column;
}

.summary-title {
    margin: 0 0 24px 0;
    font-size: 22px;
    font-weight: 700;
    color: var(--sd-text, #111827);
}

.sub-heading {
    margin: 0 0 12px 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.summary-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* The magic that perfectly aligns the labels and values */
.finance-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
}

.stat-label {
    font-weight: 600;
    color: var(--sd-text, #374151);
}

.stat-value {
    font-weight: 500;
    color: var(--sd-text, #111827);
    font-family: 'SFMono-Regular', Consolas, monospace;
    /* Optional: gives numbers a crisp, financial look */
}

/* Highlighted Rows (Net, Active Contracts, etc.) */
.stat-net {
    margin-top: 8px;
    font-size: 20px;
}

.stat-net .stat-label {
    font-weight: 800;
}

.stat-net .stat-value {
    font-weight: 800;
}

.highlight-value {
    font-size: 18px;
    font-weight: 700;
}

/* Text Colors */
.text-danger {
    color: var(--default-red, #ef4444);
}

.text-success {
    color: #10b981;
}

/* Clean Divider */
.modern-hr {
    border: none;
    height: 1px;
    background-color: var(--sd-border, #e5e7eb);
    margin: 20px 0;
}

/* Mobile Tweak */
@media (max-width: 768px) {

    .finance-summary-grid,
    .finance-secondary-grid {
        grid-template-columns: 1fr;
        /* Stacks everything on phones */
    }
}

/* =========================================
   MODERN FORM INPUTS & LABELS
   ========================================= */
.input-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
}

.modern-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--sd-muted, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.modern-input {
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    color: var(--sd-text, #f9fafb);
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 15px;
    font-family: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    box-sizing: border-box;
}

.modern-input:focus {
    outline: none;
    border-color: var(--default-red, #8A2B2B);
    box-shadow: 0 0 0 3px rgba(138, 43, 43, 0.2);
}

.modern-input.input-error {
    border-color: #ef4444;
    background-color: rgba(239, 68, 68, 0.05);
}

.modern-hr {
    border: none;
    height: 1px;
    background-color: var(--sd-border, #374151);
}

/* =========================================
   MODERN CHECKBOX / RADIO STYLE
   ========================================= */
.modern-checkbox-wrapper {
    position: relative;
    user-select: none;
    padding: 8px;
}

/* Hide the native ugly checkbox */
.modern-checkbox-input {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    background-color: var(--sd-bg, #1f2937);
    border: 2px solid var(--sd-border, #4b5563);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    margin: 0;
    flex-shrink: 0;
}

.modern-checkbox-input:hover {
    border-color: var(--default-red, #8A2B2B);
}

/* The checked state */
.modern-checkbox-input:checked {
    background-color: var(--default-red, #8A2B2B);
    border-color: var(--default-red, #8A2B2B);
}

/* The native checkmark inside the input */
.modern-checkbox-input:checked::after {
    content: '';
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin-bottom: 2px;
}

/* =========================================
   STATS DASHBOARD GRID
   ========================================= */
.stats-dashboard-grid {
    display: grid;
    /* Automatically creates columns that are at least 220px wide, 
       and stretches them to fill the space */
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
}

.stat-card {
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 12px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);
}

.stat-card.outline-card {
    background-color: transparent;
    border: 1px dashed var(--sd-border, #4b5563);
    box-shadow: none;
}

.stat-card.outline-card:hover {
    border-color: var(--default-red, #8A2B2B);
}

.stat-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--sd-muted, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
}

.stat-number {
    font-size: 32px;
    font-weight: 800;
    color: var(--sd-text, #f9fafb);
    line-height: 1;
    font-family: 'Montserrat', sans-serif;
}

.stat-subtext {
    font-size: 14px;
    font-weight: 500;
    color: var(--sd-muted, #6b7280);
    margin-top: 8px;
}

/* Colors for specific metrics */
.text-success {
    color: #10b981;
}

/* Emerald Green */
.text-warning {
    color: #f59e0b;
}

/* Amber */
.text-highlight {
    color: var(--default-red, #ef4444);
}

/* Brand Red */

/* Responsive Tweak for the wide card */
@media (max-width: 600px) {
    .stat-card[style*="grid-column: span 2"] {
        grid-column: span 1 !important;
    }
}

/* =========================================
   CARD & LAYOUT
   ========================================= */
.kinect-card {
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    font-family: 'Montserrat', sans-serif;
    margin-bottom: 24px;
}

.card-title {
    font-size: 28px;
    color: var(--sd-text, #f9fafb);
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 32px;
}

/* =========================================
   BASE TABLE STYLES (Shared across project)
   ========================================= */
.table-container {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.table-header,
.table-row {
    display: grid;
    gap: 16px;
    align-items: center;
    padding: 16px 24px;
    border-bottom: 1px solid var(--sd-border, #374151);
    transition: background-color 0.2s ease;
}

/* =========================================
   TABLE-SPECIFIC GRIDS (Namespaced)
   ========================================= */

/* 1. Gift Cards: 4 Columns */
.gift-cards-table .table-header,
.gift-cards-table .table-row {
    grid-template-columns: 40px 120px 1fr 140px;
}

/* 2. Coupons: 6 Columns */
.coupons-table .table-header,
.coupons-table .table-row {
    grid-template-columns: 40px 2fr 1.5fr 1fr 1fr 120px;
}

[data-theme='dark'] .table-row:hover {
    background-color: rgba(255, 255, 255, 0.03);
}

/* Columns */
.col-index {
    color: var(--sd-muted, #9ca3af);
    font-size: 14px;
}

.col-amount,
.col-email,
.col-status {
    display: flex;
    align-items: center;
    color: var(--sd-text, #f9fafb);
    font-size: 15px;
}

.col-email {
    /* Critical constraint to prevent long emails breaking the CSS Grid */
    min-width: 0;
}

.col-email .cell-value {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

.mobile-label {
    display: none;
    /* Hidden on desktop */
}

/* =========================================
   STATUS PILLS
   ========================================= */
.status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(4px, 1vw, 6px) clamp(10px, 2vw, 14px);
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    text-transform: capitalize;
}

.pill-active {
    background-color: rgba(74, 222, 128, 0.15);
    color: #4ade80;
}

.pill-inactive {
    background-color: transparent;
    color: var(--sd-muted, #9ca3af);
}

/* =========================================
   ACTIONS & UTILITIES
   ========================================= */
.card-actions {
    margin-top: 32px;
}

.kinect-btn-primary {
    background-color: var(--default-red, #8A2B2B);
    color: #ffffff;
    border: none;
    border-radius: 8px;
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}

.kinect-btn-primary:hover {
    opacity: 0.85;
}

.empty-state {
    padding: 40px;
    text-align: center;
    color: var(--sd-muted, #9ca3af);
    font-size: 15px;
}

/* =========================================
   MOBILE RESPONSIVENESS (Stacked Cards)
   ========================================= */
@media (max-width: 768px) {
    .table-header {
        display: none;
        /* Hide the row header */
    }

    .table-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding: 20px;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 16px;
        gap: 12px;
    }

    .table-row:last-child {
        margin-bottom: 0;
    }

    .col-index {
        display: none;
        /* Index numbers usually unhelpful on stacked mobile cards */
    }

    .col-amount,
    .col-email,
    .col-status {
        width: 100%;
        justify-content: space-between;
        /* Space out label and value */
    }

    .mobile-label {
        display: block;
        color: var(--sd-muted, #9ca3af);
        font-size: 13px;
        font-weight: 500;
    }
}

/* =========================================
   TABLE-SPECIFIC GRIDS (Namespaced)
   ========================================= */

/* Update Coupons Table to 8 Columns */
.coupons-table .table-header,
.coupons-table .table-row {
    /* Columns: Index | Name | Code | Value | Usage | Expiry | Status | Actions */
    grid-template-columns: 40px minmax(120px, 1.5fr) minmax(100px, 1fr) minmax(90px, 1fr) minmax(80px, 1fr) minmax(100px, 1fr) 100px 60px;
}

/* =========================================
   COUPON SPECIFIC CELLS
   ========================================= */
.col-code {
    display: flex;
    align-items: center;
    font-size: 14px;
}

/* Styling the code to look like an ID/Invoice # box */
.coupon-code-box {
    font-family: 'SFMono-Regular', Consolas, monospace;
    border: 1px solid var(--sd-border, #374151);
    padding: 4px 8px;
    border-radius: 4px;
    color: var(--sd-muted, #9ca3af);
    background-color: transparent;
}

/* =========================================
   ACTIONS COLUMN (Reused from Invoices)
   ========================================= */
.col-actions {
    display: flex;
    justify-content: flex-end;
    /* Push to the right edge */
    align-items: center;
}

.action-btn {
    background: transparent;
    border: none;
    color: var(--sd-muted, #9ca3af);
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.action-btn:hover {
    color: var(--sd-text, #f9fafb);
    background-color: var(--sd-border, #374151);
}

/* Mobile Actions Logic */
.mobile-actions-menu {
    display: none;
    /* Hidden on desktop by default */
    position: relative;
}

.mobile-dropdown-content {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 8px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2);
    min-width: 140px;
    z-index: 10;
    padding: 8px 0;
}

.mobile-actions-menu:hover .mobile-dropdown-content {
    display: flex;
    flex-direction: column;
}

.mobile-dropdown-content button {
    background: transparent;
    border: none;
    color: var(--sd-text, #f9fafb);
    padding: 10px 16px;
    text-align: left;
    width: 100%;
    cursor: pointer;
}

.mobile-dropdown-content button:hover {
    background-color: var(--sd-hover, #374151);
}

/* Responsive Overrides */
@media (max-width: 900px) {
    .desktop-actions {
        display: none;
    }

    .mobile-actions-menu {
        display: block;
    }
}

/* =========================================
   PAYOUTS TABLE GRID (Namespaced)
   ========================================= */
.payouts-table .table-header,
.payouts-table .table-row {
    /* Columns: Amount | Status | Arrival Date | Actions (Dots) */
    grid-template-columns: minmax(100px, 1.5fr) minmax(120px, 1fr) minmax(150px, 1.5fr) 40px;
}

.payouts-table .col-amount,
.payouts-table .col-status,
.payouts-table .col-date {
    display: flex;
    align-items: center;
    color: var(--sd-text, #f9fafb);
    font-size: 15px;
}

.payouts-table .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Make sure the primary text for payouts pops */
.payouts-table .primary-text {
    font-family: 'SFMono-Regular', Consolas, monospace;
    font-weight: 500;
}

/* =========================================
   MOBILE RESPONSIVENESS (Stacked Payouts)
   ========================================= */
@media (max-width: 768px) {
    .payouts-table .table-row {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        grid-template-areas:
            "amount actions"
            "status status"
            "date date";
        gap: 12px;
        padding: 16px;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 16px;
    }

    .payouts-table .col-amount {
        grid-area: amount;
        font-size: 18px;
    }

    .payouts-table .col-actions {
        grid-area: actions;
    }

    .payouts-table .col-status {
        grid-area: status;
        justify-content: flex-start;
    }

    .payouts-table .col-date {
        grid-area: date;
        color: var(--sd-muted, #9ca3af);
    }

    .payouts-table .mobile-label {
        display: inline-block;
        margin-right: 8px;
        color: var(--sd-muted, #9ca3af);
        font-size: 13px;
        width: 80px;
        /* Aligns the labels neatly on mobile */
    }
}

/* =========================================
   EVENT PASSES TABLE (Namespaced)
   ========================================= */
.event-passes-table .table-header,
.event-passes-table .table-row {
    /* Columns: Name | Type | Events | Claimed | Labels | Actions */
    grid-template-columns: minmax(180px, 2fr) minmax(140px, 1.5fr) 100px 100px minmax(200px, 2fr) 40px;
}

.event-passes-table .table-header {
    /* Remove the bottom border from the header since rows have full borders */
    border-bottom: none;
    margin-bottom: 8px;
}

.event-passes-table .col-name,
.event-passes-table .col-type,
.event-passes-table .col-events,
.event-passes-table .col-claimed,
.event-passes-table .col-labels {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #f9fafb);
}

.event-passes-table .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* =========================================
   STANDALONE SEPARATED ROWS (For the distinct card look)
   ========================================= */
.separated-rows {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* The margin between rows */
}

.standalone-row {
    background-color: transparent;
    border: 1px solid var(--sd-border, #374151) !important;
    border-radius: 8px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
}

/* Re-establish hover state since we removed the manual JS hovering */
.standalone-row:hover {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-muted, #9ca3af) !important;
}

.archived-row {
    /* Use the standard background or hover color so it adapts perfectly to Light/Dark mode */
    background-color: var(--sd-hover, #f9fafb);
    border-color: var(--sd-muted, #9ca3af) !important;
    border-style: dashed !important;
}

/* Optional: Ensure the text inside takes on a slightly muted tone to sell the 'disabled' look */
.archived-row .col-name .cell-value,
.archived-row .col-type .cell-value,
.archived-row .col-events .cell-value,
.archived-row .col-claimed .cell-value,
.archived-row .col-labels .cell-value {
    color: var(--sd-muted, #6b7280) !important;
}

.labels-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

/* =========================================
   MOBILE BREAKPOINT OVERRIDES
   ========================================= */
@media (max-width: 900px) {
    .event-passes-table .table-row {
        display: grid !important;
        /* FIX: 3-column layout decouples the bottom row from the top row's width constraints */
        grid-template-columns: 1fr 1fr auto !important;
        grid-template-areas:
            "name name actions"
            "type type type"
            "labels labels labels"
            "events claimed claimed";
        gap: 12px 16px !important;
        padding: 16px !important;
        align-items: flex-start;
        /* Force the card to respect the screen width */
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .event-passes-table .mobile-label {
        display: inline-block !important;
        min-width: 90px;
        color: var(--sd-muted, #9ca3af);
        margin-right: 8px;
        font-weight: 500;
    }

    /* Prevent long text from expanding the grid */
    .event-passes-table .col-name {
        grid-area: name;
        align-items: flex-start;
        min-width: 0;
    }

    .event-passes-table .col-name .cell-value {
        font-size: 16px;
        font-weight: 700;
        white-space: normal;
        word-wrap: break-word;
    }

    .event-passes-table .col-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .event-passes-table .col-type {
        grid-area: type;
    }

    .event-passes-table .col-labels {
        grid-area: labels;
        align-items: flex-start;
    }

    .event-passes-table .col-events {
        grid-area: events;
        justify-content: flex-start !important;
        padding-top: 16px !important;
        border-top: 1px dashed var(--sd-border, #374151);
    }

    .event-passes-table .col-claimed {
        grid-area: claimed;
        /* FIX: Changed from flex-end to flex-start so it sits comfortably in the middle */
        justify-content: flex-start !important;
        padding-top: 16px !important;
        border-top: 1px dashed var(--sd-border, #374151);
    }
}

/* =========================================
   EVENT TEMPLATES TABLE (Namespaced)
   ========================================= */
.templates-table .table-header,
.templates-table .table-row {
    /* Columns: Name | Cost | Type | Length | Actions */
    grid-template-columns: minmax(200px, 2.5fr) 1fr 1fr 1fr 60px;
}

.templates-table .col-name,
.templates-table .col-cost,
.templates-table .col-type,
.templates-table .col-length {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #f9fafb);
}

.templates-table .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* =========================================
   MOBILE RESPONSIVENESS (Templates)
   ========================================= */
@media (max-width: 768px) {
    .templates-table .table-row {
        display: grid !important;
        grid-template-columns: 1fr 1fr auto !important;
        grid-template-areas:
            "name name actions"
            "cost type type"
            "length length length";
        gap: 12px 16px !important;
        padding: 16px !important;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 12px;
        align-items: flex-start;
    }

    .templates-table .mobile-label {
        display: inline-block !important;
        min-width: 70px;
        color: var(--sd-muted, #9ca3af);
        margin-right: 8px;
        font-weight: 500;
    }

    .templates-table .col-name {
        grid-area: name;
    }

    .templates-table .col-name .cell-value {
        font-size: 16px;
        font-weight: 700;
        white-space: normal;
        word-wrap: break-word;
    }

    .templates-table .col-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .templates-table .col-cost {
        grid-area: cost;
    }

    .templates-table .col-type {
        grid-area: type;
    }

    .templates-table .col-length {
        grid-area: length;
        padding-top: 12px;
        border-top: 1px dashed var(--sd-border, #374151);
    }
}
/* =========================================
   PARENT LAYOUT (Fixes wrapping & overlap)
   ========================================= */
.insights-section {
    margin-top: 24px;
    /* Adds massive breathing room below the top widgets */
    font-family: 'Montserrat', sans-serif;
    clear: both;
}

.insights-header {
    margin-bottom: 20px;
}

.insights-subtitle {
    margin: 4px 0;
    font-size: 14px;
    font-weight: 500;
}

/* Forces exactly 2 columns on desktop so it never breaks/wraps weirdly */
.insights-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

/* Stacks nicely to 1 column on smaller screens */
@media (max-width: 900px) {
    .insights-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================
   INDIVIDUAL CARD STYLING
   ========================================= */
.trend-card {
    background-color: var(--sd-bg);
    border: 1px solid var(--sd-border);
    border-radius: 12px;
    padding: 24px 32px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    font-family: 'Montserrat', sans-serif;
    min-height: 140px;
    /* Standardizing height per design system */
}

.trend-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--sd-text);
    margin-top: 0;
    margin-bottom: 24px;
    text-transform: uppercase;
    /* Dashboard aesthetic */
    letter-spacing: 0.5px;
}

.trend-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* Standard spacing between stat and rate */
}

/* Updated Main Stat Row */
.main-stat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    /* Prevents overflow on very small screens */
    gap: 8px;
}

.stat-label {
    font-size: 17px;
    color: var(--sd-text);
}

.stat-label b {
    font-size: 22px;
    margin-left: 4px;
}

.comparison-text {
    color: var(--sd-muted);
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Growth/Churn Rate Row */
.rate-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rate-label {
    font-size: 14px;
    color: var(--sd-muted);
    font-weight: 600;
}

.trend-divider {
    border: 0;
    height: 1px;
    background-color: var(--sd-border);
    margin: 20px 0;
}

/* Badges & Pills */
.trend-badge {
    display: inline-flex;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
}

.rate-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 700;
}

/* Theme-aware Colors */
.badge-positive {
    background-color: #dcfce7;
    color: #166534;
}

[data-theme='dark'] .badge-positive {
    background-color: rgba(74, 222, 128, 0.15);
    color: #4ade80;
}

.badge-negative {
    background-color: #fee2e2;
    color: #991b1b;
}

[data-theme='dark'] .badge-negative {
    background-color: rgba(248, 113, 113, 0.15);
    color: #f87171;
}

.badge-muted {
    background-color: var(--sd-border);
    color: var(--sd-muted);
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .main-stat {
        flex-direction: column;
        align-items: flex-start;
    }

    .comparison-text {
        margin-top: -4px;
    }
}
/* Card Wrapper (Matches your new Insights layout) */
.custom-chart-card {
    background-color: var(--sd-bg);
    border: 1px solid var(--sd-border);
    border-radius: 12px;
    padding: 20px 20px;
    box-shadow: var(--sd-shadow);
    font-family: 'Montserrat', sans-serif;
    margin-top: 24px;
}


.chart-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 300px;
}

/* Chart Container Layout */
.custom-chart-container {
    display: flex;
    height: 320px;
    /* Overall height of the chart */
    margin-top: 16px;
}

/* Y-Axis */
.chart-y-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-right: 16px;
    padding-bottom: 36px;
    /* Matches the new height + margin of the X-axis labels */
    color: var(--sd-muted);
    font-size: 13px;
    font-family: 'Montserrat', sans-serif;
    /* Matched font */
    font-weight: 500;
    text-align: right;
    width: 30px;
}

.y-tick-label {
    transform: translateY(-50%);
    /* perfectly aligns text with the grid line */
}

.y-tick-label:last-child {
    transform: translateY(0);
    /* Fixes the '0' at the bottom */
}

/* Main Area (Grid + Bars) */
.chart-main-area {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
}

/* Background Grid Lines */
.chart-grid {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 24px;
    /* Leave room for X-axis */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 1;
}

.grid-line {
    width: 100%;
    border-bottom: 1px dashed var(--sd-border);
    /* Faint dashed line */
}

.grid-line:last-child {
    border-bottom: 1px solid var(--sd-muted);
    /* Solid line for the bottom axis */
}

/* Bars Container */
.chart-bars {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: space-around;
    align-items: flex-end;
    z-index: 2;
    /* Sits on top of the grid */
}

/* Individual Bar Wrapper */
.bar-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    flex: 1;
    /* Distributes the 12 columns perfectly evenly */
}

/* The Bar Itself */
.bar {
    width: 75%;
    /* Makes the bars significantly chunkier */
    max-width: 70px;
    /* Caps them so they don't get comically huge on ultrawide monitors */
    background-color: var(--default-red);
    border-radius: 4px 4px 0 0;
    /* Slightly softer rounded corners */
    position: relative;
    transition: background-color 0.2s ease, height 0.5s ease;
    cursor: pointer;
}

.bar:hover {
    background-color: #8A2B2B;
    /* Darkens on hover */
}

/* X-Axis Labels */
.x-tick-label {
    height: 24px;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    /* Forces the text to the exact center of the column */
    color: var(--sd-muted);
    font-size: 14px;
    /* Slightly larger, crisper font */
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    margin-top: 12px;
    /* A bit more breathing room from the axis line */
}

/* ============================
   Pure CSS Tooltip
   ============================ */
.bar-tooltip {
    position: absolute;
    bottom: calc(100% + 8px);
    /* Sits right above the bar */
    left: 50%;
    transform: translateX(-50%);
    background-color: #111827;
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease;
    pointer-events: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Tooltip Arrow */
.bar-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px;
    border-style: solid;
    border-color: #111827 transparent transparent transparent;
}

/* Show Tooltip on Bar Hover */
.bar:hover .bar-tooltip {
    opacity: 1;
    visibility: visible;
    bottom: calc(100% + 12px);
    /* Slight float up animation */
}

.chart-header h3 {
    font-size: 22px;
    font-weight: 500;
    /* Lighter weight to match the mockup */
    color: var(--sd-text);
    margin-top: 0;
    margin-bottom: 24px;
    font-family: 'Montserrat', sans-serif;
}
/* =========================================
   INVOICE LIST CONTAINER & HEADER
   ========================================= */
.invoice-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

/* =========================================
   INVOICE TABLE HEADERS
   ========================================= */
.inv-col-header {
    font-weight: 700;
    color: var(--sd-muted, #9ca3af);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.05em;
    margin: 0;
}

/* =========================================
   THE MASTER GRID
   CRITICAL: Both Header and Row share this exact grid to guarantee alignment!
   ========================================= */
.invoice-header-row,
.invoice-row {
    display: grid;
    /* 7 Columns: Member, Amount, Status, Due, Hash, Processor, Actions */
    grid-template-columns: 2.5fr 1fr 1fr 1.5fr 1.5fr 1.5fr 80px;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
}

/* Header Specific Styling */
.invoice-header-row {
    border-bottom: 2px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

/* Header Typography */
.invoice-header-row .inv-col p {
    margin: 0 !important;
    width: 100%;
    font-size: 12px;
    font-weight: 700;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Specific Header Alignments */
.invoice-header-row .inv-status p {
    text-align: center;
}

.invoice-header-row .inv-actions p {
    text-align: right;
    padding-right: 4px;
}

.invoice-list-container {
    overflow-x: auto;
    /* Allows horizontal scrolling on tiny screens instead of clipping */
}

/* =========================================
   MOBILE RESPONSIVENESS (Layout)
   ========================================= */

/* Tablet & Smaller Laptops (under 1024px) */
@media (max-width: 1024px) {
    .tablet-hide {
        display: none !important;
    }

    /* Redefine grid for 5 remaining columns */
    .invoice-header-row,
    .invoice-row {
        grid-template-columns: 2.5fr 1fr 1fr 1.5fr 80px;
    }
}

/* Mobile Phones (under 768px) */
@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }

    /* Hide the word "ACTIONS" in the header on phones */
    .invoice-header-row .inv-actions p {
        display: none !important;
    }

    /* Tighter Mobile Grid: Member, Amount, Status, Actions */
    .invoice-header-row,
    .invoice-row {
        grid-template-columns: 2fr 1fr 85px 40px;
        padding: 12px 10px;
        gap: 8px;
    }
}
/* =========================================
   DRAWER CONTAINER
   ========================================= */
.kinect-assistant-chat-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: 400px;
    max-width: 100vw;
    height: calc(100vh - var(--nav-bar-height));
    margin-top: var(--nav-bar-height);
    background-color: var(--sd-bg, #ffffff);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    z-index: 1000;
    transform: translateX(100%);
    /* Hidden by default */
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.kinect-assistant-chat-drawer.open {
    transform: translateX(0);
    /* Slide in */
}

/* =========================================
   HEADER
   ========================================= */
.kinect-assistant-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid var(--sd-border, #e5e7eb);
    background-color: var(--sd-bg, #ffffff);
}

.header-title-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.assistant-avatar {
    width: 32px;
    height: 32px;
    background-color: var(--default-red, #8A2B2B);
    color: white;
    border-radius: 8px;
    /* Slightly rounded square */
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 16px;
}

.kinect-assistant-header h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--sd-text, #111827);
}

.close-drawer-btn {
    background: none;
    border: none;
    color: var(--sd-muted, #6b7280);
    cursor: pointer;
    padding: 8px;
    border-radius: 6px;
    display: flex;
    transition: all 0.2s ease;
}

.close-drawer-btn:hover {
    background-color: var(--sd-hover, #f3f4f6);
    color: var(--default-red, #8A2B2B);
}

/* =========================================
   CHAT HISTORY (Body)
   ========================================= */
.kinect-assistant-chat-history {
    flex: 1;
    /* Takes up remaining vertical space */
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    background-color: var(--sd-bg, #f9fafb);
    /* Slightly darker than header/footer */
}

.chat-message-row {
    display: flex;
    width: 100%;
}

.user-row {
    justify-content: flex-end;
}

.assistant-row {
    justify-content: flex-start;
}

.chat-bubble {
    max-width: 80%;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.5;
    word-wrap: break-word;
}

.chat-sender {
    display: block;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 4px;
    opacity: 0.8;
}

/* User Message Styles */
.user-bubble {
    background-color: var(--default-red, #8A2B2B);
    color: white;
    border-bottom-right-radius: 4px;
    /* classic message tail */
}

/* Assistant Message Styles */
.assistant-bubble {
    background-color: var(--sd-bg, #ffffff);
    color: var(--sd-text, #111827);
    border: 1px solid var(--sd-border, #e5e7eb);
    border-bottom-left-radius: 4px;
}

/* =========================================
   INPUT AREA (Footer)
   ========================================= */
.kinect-assistant-chat-footer {
    padding: 16px 20px;
    border-top: 1px solid var(--sd-border, #e5e7eb);
    background-color: var(--sd-bg, #ffffff);
}

.chat-input-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

#kinect-assistant-input-field {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid var(--sd-border, #d1d5db);
    border-radius: 24px;
    /* Pill shaped input */
    font-size: 14px;
    font-family: 'Montserrat', sans-serif;
    color: var(--sd-text, #111827);
    background-color: var(--sd-bg, #f9fafb);
    outline: none;
    transition: border-color 0.2s ease;
}

#kinect-assistant-input-field:focus {
    border-color: var(--default-red, #8A2B2B);
}

.chat-send-btn {
    background-color: var(--default-red, #8A2B2B);
    color: white;
    border: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.chat-send-btn:hover:not(:disabled) {
    transform: scale(1.05);
    background-color: #702121;
}

.chat-send-btn:disabled {
    background-color: var(--sd-muted, #9ca3af);
    cursor: not-allowed;
}

/* =========================================
   ANIMATED TYPING INDICATOR
   ========================================= */
.thinking-bubble {
    display: flex;
    gap: 4px;
    align-items: center;
    padding: 16px 20px;
}

.thinking-bubble .dot {
    width: 6px;
    height: 6px;
    background-color: var(--sd-muted, #6b7280);
    border-radius: 50%;
    animation: typing 1.4s infinite ease-in-out both;
}

.thinking-bubble .dot:nth-child(1) {
    animation-delay: -0.32s;
}

.thinking-bubble .dot:nth-child(2) {
    animation-delay: -0.16s;
}

@keyframes typing {

    0%,
    80%,
    100% {
        transform: scale(0);
    }

    40% {
        transform: scale(1);
    }
}

.chat-error-message {
    text-align: center;
    color: #ef4444;
    font-size: 13px;
    margin-top: 8px;
}
/* =========================================
   MEMBERS TABLE GRID (Namespaced to Dashboard.css)
   ========================================= */
.members-table .table-header,
.members-table .table-row {
    /* Fixed Index | Name (2fr) | Membership (1.5fr) | Gym (1.5fr) | Fixed Status | NEW: Actions (60px) */
    grid-template-columns: 40px minmax(180px, 2fr) minmax(150px, 1.5fr) minmax(150px, 1.5fr) 100px 60px;
}

/* Base formatting for the rows to match global UI */
.member-row .col-name,
.member-row .col-membership,
.member-row .col-gym,
.member-row .col-status {
    display: flex;
    align-items: center;
    font-size: 15px;
    color: var(--sd-text, #f9fafb);
}

.member-row .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.member-row .col-membership,
.member-row .col-gym {
    color: var(--sd-muted, #9ca3af);
}

.member-row .name-cell .cell-value {
    font-weight: 600;
}

/* ============================
   The Status Pills
   ============================ */
.status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* Light Mode Defaults */
.pill-active {
    background-color: #dcfce7;
    color: #166534;
}

.pill-unpaid {
    background-color: #fee2e2;
    color: #991b1b;
}

.pill-warning {
    background-color: #fef3c7;
    color: #92400e;
}

.pill-danger {
    background-color: #111827;
    color: #ffffff;
}

.pill-pending {
    background-color: #e0e7ff;
    color: #3730a3;
}

.pill-paused {
    background-color: #f3f4f6;
    color: #374151;
}

.pill-special {
    background-color: #fae8ff;
    color: #701a75;
}

.pill-inactive {
    background-color: transparent;
    border: 1px solid var(--sd-border);
    color: var(--sd-muted);
}

/* Dark Mode Adjustments */
[data-theme='dark'] .pill-active {
    background-color: rgba(74, 222, 128, 0.15);
    color: #4ade80;
}

[data-theme='dark'] .pill-unpaid {
    background-color: rgba(248, 113, 113, 0.15);
    color: #f87171;
}

[data-theme='dark'] .pill-warning {
    background-color: rgba(251, 191, 36, 0.15);
    color: #fbbf24;
}

[data-theme='dark'] .pill-danger {
    background-color: #f9fafb;
    color: #111827;
}

[data-theme='dark'] .pill-pending {
    background-color: rgba(129, 140, 248, 0.15);
    color: #818cf8;
}

[data-theme='dark'] .pill-special {
    background-color: rgba(217, 70, 239, 0.15);
    color: #d946ef;
}

/* =========================================
   MOBILE RESPONSIVENESS (Preserving Your 2x2 Grid)
   ========================================= */
@media (max-width: 768px) {

    /* Hide global mobile styles we don't want here */
    .member-row .mobile-label {
        display: none !important;
    }

    .members-table .table-row {
        display: grid !important;
        /* Adjusted grid to safely hold 3 items in the top row */
        grid-template-columns: minmax(0, 1fr) auto auto !important;
        grid-template-areas:
            "name status actions"
            "plan gym gym";
        gap: 12px 16px;
        padding: 16px 20px;
        align-items: center;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 16px;
    }

    /* Assign the new column to the grid area */
    .members-table .col-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .members-table .col-index {
        display: none !important;
    }

    /* TOP LEFT: Name */
    .members-table .col-name {
        grid-area: name;
        font-size: 16px;
        line-height: 1.3;
    }

    /* TOP RIGHT: Status Pill */
    .members-table .col-status {
        grid-area: status;
    }

    /* BOTTOM LEFT: Plan */
    .members-table .col-membership {
        grid-area: plan;
        font-size: 13px;
        align-self: start;
    }

    /* BOTTOM RIGHT: Gym */
    .members-table .col-gym {
        grid-area: gym;
        font-size: 13px;
        justify-content: flex-end;
        text-align: right;
        align-self: start;
    }
}
.back-button-themed {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 8px 12px;
    /* Space between button and content */
    cursor: pointer;
    border-radius: 8px;
    color: var(--default-red);
    /* Uses your kinect red (theme-aware) */
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.back-icon-svg {
    width: 20px;
    height: 20px;
    transition: transform 0.2s ease;
}

/* Hover States */
.back-button-themed:hover {
    background-color: var(--sd-hover);
    /* Light gray in light, #2d3748 in dark */
}

.back-button-themed:hover .back-icon-svg {
    transform: translateX(-4px);
    /* Interactive nudge to the left */
}

/* Active/Press state */
.back-button-themed:active {
    transform: scale(0.96);
}
.help-icon-btn {
    background: transparent;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: var(--sd-muted, #6b7280);
    /* Muted gray by default */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

/* Turns your brand red on hover */
.help-icon-btn:hover {
    color: var(--default-red, #8A2B2B);
    background-color: var(--sd-hover, #f3f4f6);
    transform: scale(1.05);
}
.update-membership-sidedrawer {
  height: 100%;
  background-color: var(--sd-bg);
  box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0;
  z-index: var(--sidedrawer-z-index);
  right: 0;
  width: 70%;
  max-width: 8 00px;
  padding: 10px;
  transform: translateY(-100%);
  transition: transform 0.3s ease-out;
  overflow-y: auto;
}

.update-membership-sidedrawer.open {
  transform: translateY(0);
}

.update-membership-sidedrawer ul {
  height: 100%;
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--sd-text);
}

.update-membership-sidedrawer p {
  margin: 0.5rem 0;
}

.update-membership-sidedrawer h1 {
  margin: 0.5rem 0;
}

.update-membership-sidedrawer a {
  color: var(--sd-text);
  text-shadow: .05rem .05rem #191c22;
  font-family: montserrat;
  font-stretch: expanded;
  letter-spacing: .1rem;
  font-size: 16px;
}

.update-membership-sidedrawer a:hover,
.update-membership-sidedrawer a:active {
  text-decoration: none;
  color: var(--default-red);
}

@media (max-width: 768px) {
  .update-membership-sidedrawer {
    width: 100%;
  }
}
/* =========================================
   MEMBERSHIP TABLE GRID
   ========================================= */
.mem-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

/* 5 Columns: Name (2.5fr), Plan (2fr), Status (1.5fr), Processor (1fr), Platform (1fr) */
.mem-header-row {
    display: grid;
    grid-template-columns: 2.5fr 2fr 1.5fr 1fr 1fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 2px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

.mem-row {
    display: grid;
    grid-template-columns: 2.5fr 2fr 1.5fr 1fr 1fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    background-color: var(--sd-bg, #ffffff);
    border-radius: 8px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    border: 1px solid transparent;
    cursor: pointer;
}

/* THE LINK WRAPPER FIX: 
   This makes the <Link> tag invisible to the grid layout, 
   allowing the .mem-row to directly align with the .mem-header-row! 
*/
.mem-row-link {
    display: contents;
    text-decoration: none;
    color: inherit;
}

.mem-row-link:hover .mem-row {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-border, #e5e7eb);
}

.mem-header-row .mem-col p {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mem-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #111827);
    overflow: hidden;
    /* Prevents long text from breaking grid */
}

/* Typography & Avatars */
.primary-text {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.date-text {
    color: var(--sd-muted, #6b7280);
}

.inv-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--default-red, #8A2B2B);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.inv-name-stack {
    display: flex;
    flex-direction: column;
    margin-left: 12px;
    overflow: hidden;
}

/* =========================================
   MODERN FILTERS SECTION
   ========================================= */
.filters-section {
    background-color: var(--sd-bg, #ffffff);
    border: 1px solid var(--sd-border, #e5e7eb);
    border-radius: 8px;
}

.search-and-clear {
    border-bottom: 1px solid var(--sd-border, #e5e7eb);
    padding-bottom: 16px;
}

.modern-search-input {
    flex: 1;
    max-width: 400px;
    padding: 10px 16px;
    border: 1px solid var(--sd-border, #d1d5db);
    border-radius: 6px;
    background-color: var(--sd-bg, #f9fafb);
    color: var(--sd-text, #111827);
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

.modern-search-input:focus {
    border-color: var(--default-red, #8A2B2B);
    box-shadow: 0 0 0 3px rgba(138, 43, 43, 0.1);
}

.filters-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

/* Override default Dropdown container styling if necessary */
.event-dropdown-filter {
    width: 100%;
}

.text-button {
    background: transparent;
    border: none;
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
    font-family: 'Montserrat', sans-serif;
    padding: 8px 12px;
    border-radius: 4px;
    transition: background-color 0.2s ease;
}

.text-button.text-danger {
    color: #dc2626;
}

.text-button.text-danger:hover {
    background-color: #fee2e2;
    text-decoration: none;
}

/* Dark Mode Support for Filters */
[data-theme='dark'] .text-button.text-danger:hover {
    background-color: rgba(220, 38, 38, 0.15);
}

/* =========================================
   MOBILE FILTER TOGGLE BEHAVIOR
   ========================================= */

/* Default: Hide the toggle button on Desktop */
.mobile-filter-toggle {
    display: none;
    padding: 8px 12px;
}

@media (max-width: 768px) {

    /* Mobile: Show the toggle button */
    .mobile-filter-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Mobile: Hide the grid when collapsed */
    .filters-grid.mobile-collapsed {
        display: none !important;
    }

    /* Mobile: Ensure search bar formatting plays nice with buttons */
    .filter-actions-group {
        width: 100%;
        justify-content: space-between;
    }
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */

/* Tablets (under 1024px) */
@media (max-width: 1024px) {
    .tablet-hide {
        display: none !important;
    }

    /* 4 Columns Left */
    .mem-header-row,
    .mem-row {
        grid-template-columns: 2.5fr 2fr 1.5fr 1fr;
    }
}

/* Phones (under 768px) */
@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }

    .mem-header-row {
        display: none !important;
    }

    /* Stacked Card Layout */
    .mem-row {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "name status"
            "plan plan";
        gap: 12px 16px;
        padding: 16px 12px;
        border: 1px solid var(--sd-border, #e5e7eb);
        margin-bottom: 8px;
    }

    .mem-name {
        grid-area: name;
    }

    .mem-status {
        grid-area: status;
        justify-content: flex-end;
    }

    .mem-plan {
        grid-area: plan;
        font-size: 13px;
        color: var(--sd-muted, #6b7280);
    }

    .mem-plan::before {
        content: "Plan: ";
        font-weight: 600;
        margin-right: 4px;
        color: var(--sd-text, #111827);
    }

    .search-and-clear {
        flex-direction: column;
        align-items: flex-start;
    }

    .modern-search-input {
        max-width: 100%;
        width: 100%;
    }
}


/* =========================================
   MEMBERSHIP DETAILS GRID
   ========================================= */
.membership-details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 48px;
    padding: 16px 0;
}

.details-col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.data-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.data-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sd-muted, #6b7280);
    font-family: 'Montserrat', sans-serif;
}

.data-value {
    font-size: 15px;
    color: var(--sd-text, #111827);
    line-height: 1.4;
}

/* Inline data (like Date + Edit Button) */
.data-value-inline {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: var(--sd-text, #111827);
}

.text-button.text-action {
    color: var(--default-red, #8A2B2B);
    padding: 2px 6px;
    font-size: 12px;
}

.text-button.text-action:hover {
    background-color: var(--sd-hover, #f3f4f6);
}

/* Extras */
.modern-hr {
    border: 0;
    height: 1px;
    background-color: var(--sd-border, #e5e7eb);
    margin: 16px 0;
}

.coupon-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.coupon-badge {
    background-color: #fef2f2;
    color: #991b1b;
    border: 1px dashed #fca5a5;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

[data-theme='dark'] .coupon-badge {
    background-color: rgba(248, 113, 113, 0.1);
    border-color: #ef4444;
    color: #f87171;
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */
@media (max-width: 768px) {

    /* 1. Stack the two main columns into one */
    .membership-details-grid {
        grid-template-columns: 1fr;
        gap: 0;
        /* Remove massive grid gaps */
        padding-top: 0;
    }

    .details-col {
        gap: 0;
        /* Let the rows handle their own spacing */
    }

    /* 2. Transform the stacked data into a sleek horizontal list */
    .data-group {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 16px 0;
        border-bottom: 1px solid var(--sd-border, #e5e7eb);
    }

    /* Hide the border on the very last item */
    .details-col:last-child .data-group:last-child {
        border-bottom: none;
    }

    .data-label {
        flex-shrink: 0;
        /* Prevents the label from squishing */
    }

    /* 3. Force all values (spans, divs, inline-containers) to align right */
    .data-group> :not(.data-label) {
        flex: 1;
        text-align: right;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        flex-wrap: wrap;
        /* Allows the Edit button to safely drop down if the date is too long */
        padding-left: 16px;
        /* Buffer between label and value */
    }

    /* Fix spacing for the specific inline row with the Edit button */
    .data-value-inline {
        gap: 8px;
    }

    /* 4. Footer buttons */
    .card-actions-footer {
        flex-direction: column;
        margin-top: 16px !important;
    }

    .card-actions-footer button {
        width: 100%;
        /* Full width buttons on mobile */
    }
}
/* =========================================
   VISITS TABLE GRID
   ========================================= */
.visits-table .table-row {
    /* Columns: Member | Date/Time | Context(Reason/Door) | Status | Actions */
    grid-template-columns: minmax(180px, 2fr) minmax(140px, 1.5fr) minmax(140px, 1.5fr) 100px 70px;
    align-items: center;
}

.visits-table .col-date,
.visits-table .col-context,
.visits-table .col-status {
    display: flex;
    align-items: center;
    color: var(--sd-text, #f9fafb);
}

.visits-table .stack-text {
    display: flex;
    flex-direction: column;
}

.visits-table .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Helper text colors */
.visits-table .muted-text {
    color: var(--sd-muted, #9ca3af);
}

/* Profile Pic reset for tables */
.profile-pic-tab-icon {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

/* --- DANGER (Red - For Invalid, Failed, Errors) --- */
.pill-danger {
    background-color: #fee2e2;
    color: #991b1b;
}

[data-theme='dark'] .pill-danger {
    background-color: rgba(248, 113, 113, 0.15);
    color: #f87171;
}

/* --- WARNING (Yellow/Orange - For Pending, Transit, Paused) --- */
.pill-warning {
    background-color: #fef3c7;
    color: #92400e;
}

[data-theme='dark'] .pill-warning {
    background-color: rgba(251, 191, 36, 0.15);
    color: #fbbf24;
}

/* =========================================
   MOBILE RESPONSIVENESS (Visits)
   ========================================= */
@media (max-width: 768px) {
    .visits-table .table-row {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        grid-template-areas:
            "member actions"
            "status status"
            "date context";
        gap: 12px 16px !important;
        padding: 16px !important;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 12px;
        align-items: flex-start;
    }

    .visits-table .mobile-label {
        display: inline-block !important;
        color: var(--sd-muted, #9ca3af);
        margin-bottom: 4px;
        font-size: 12px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

    .visits-table .col-member {
        grid-area: member;
    }

    .visits-table .col-member .mobile-label {
        display: none !important;
    }

    /* Hide label for Name */

    .visits-table .col-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .visits-table .col-status {
        grid-area: status;
        justify-content: flex-start !important;
    }

    .visits-table .col-date {
        grid-area: date;
        flex-direction: column;
        align-items: flex-start !important;
        padding-top: 12px;
        border-top: 1px dashed var(--sd-border, #374151);
    }

    .visits-table .col-context {
        grid-area: context;
        flex-direction: column;
        align-items: flex-end !important;
        text-align: right;
        padding-top: 12px;
        border-top: 1px dashed var(--sd-border, #374151);
    }
}
/* =========================================
   CLAIMED PASS TABLE (Desktop Layout)
   ========================================= */
.claimed-pass-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

/* 6 Columns: Name (2fr), Uses (1fr), Remaining (1fr), Created (1.5fr), Expires (1.5fr), Status (1fr) */
.pass-header-row,
.pass-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr 1.5fr 1fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
}

.pass-header-row {
    border-bottom: 2px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

.pass-header-row .pass-col p {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pass-row {
    background-color: var(--sd-bg, #ffffff);
    border-radius: 8px;
    transition: background-color 0.2s ease, transform 0.1s ease;
    cursor: pointer;
    border: 1px solid transparent;
}

.pass-row:hover {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-border, #e5e7eb);
}

.pass-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #111827);
}

/* Typography Tweaks */
.primary-text {
    font-weight: 600;
}

.date-text {
    color: var(--sd-muted, #6b7280);
}

.mono-number {
    font-family: 'SFMono-Regular', Consolas, monospace;
    font-size: 15px;
}

.highlight-number {
    font-weight: 700;
    color: var(--default-red, #8A2B2B);
}

/* Status Alignment */
.pass-status {
    justify-content: flex-end;
}

.pass-header-row .pass-status p {
    text-align: right;
    width: 100%;
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */

/* Tablets (under 1024px) */
@media (max-width: 1024px) {
    .tablet-hide {
        display: none !important;
    }

    /* 5 Columns left */
    .pass-header-row,
    .pass-row {
        grid-template-columns: 2fr 1fr 1fr 1.5fr 1fr;
    }
}

/* Phones (under 768px) - Stacked Card Layout */
@media (max-width: 768px) {

    /* THE FIX: Strip the inner card styling on mobile */
    .custom-chart-card.claimed-pass-table {
        border: none !important;
        background: transparent !important;
        padding: 0 !important;
        box-shadow: none !important;
    }

    .mobile-hide {
        display: none !important;
    }

    .pass-header-row {
        display: none !important;
    }

    .pass-row {
        /* THE FIX: Changed from '1fr 1fr' to '1fr auto' */
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "name status"
            "uses remaining";
        gap: 12px 12px;
        /* Slightly reduced horizontal gap to save space */
        padding: 16px 16px;
        /* Ensures padding is even */
        border: 1px solid var(--sd-border, #e5e7eb);
        margin-bottom: 8px;
    }

    .pass-name {
        grid-area: name;
        /* ADDED: Ensures a long event name wraps to a new line instead of pushing the grid wide */
        white-space: normal;
        line-height: 1.3;
        padding-right: 8px;
        /* Adds a tiny buffer between the text and the badge */
    }

    .pass-status {
        grid-area: status;
        justify-content: flex-end;
    }

    .pass-uses {
        grid-area: uses;
        font-size: 13px;
    }

    .pass-uses::before {
        content: "Used: ";
        color: var(--sd-muted);
        margin-right: 4px;
    }

    .pass-remaining {
        grid-area: remaining;
        justify-content: flex-end;
        font-size: 13px;
    }

    .pass-remaining::before {
        content: "Left: ";
        color: var(--sd-muted);
        margin-right: 4px;
        font-weight: normal;
    }
}
/* =========================================
   PAYMENT METHODS TABLE
   ========================================= */
.pm-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
    margin-bottom: 24px;
}

/* 5 Columns: Brand (1.5fr), Number (1.5fr), Expiry (1fr), Country (1fr), Actions (40px fixed) */
.pm-header-row,
.pm-row {
    display: grid;
    grid-template-columns: 1.5fr 1.5fr 1fr 1fr 40px;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
}

.pm-header-row {
    border-bottom: 2px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

.pm-header-row .pm-col p {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pm-row {
    background-color: var(--sd-bg, #ffffff);
    border-radius: 8px;
    transition: background-color 0.2s ease;
    border: 1px solid transparent;
}

.pm-row:hover {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-border, #e5e7eb);
}

.pm-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #111827);
}

.pm-actions {
    justify-content: flex-end;
}

/* =========================================
   FOOTER (Buttons & Balance)
   ========================================= */
.pm-footer-actions {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--sd-border, #e5e7eb);
}

.pm-buttons {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.pm-balance-section {
    display: flex;
    align-items: center;
    gap: 16px;
    background-color: var(--sd-bg, #f9fafb);
    padding: 12px 20px;
    border-radius: 8px;
    border: 1px solid var(--sd-border, #e5e7eb);
}

.balance-info h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    color: var(--sd-text, #111827);
}

.balance-info p {
    margin: 0;
    font-size: 12px;
    color: var(--sd-muted, #6b7280);
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */
@media (max-width: 768px) {
    .pm-header-row {
        display: none !important;
    }

    .pm-row {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "brand actions"
            "number expiry";
        gap: 8px 16px;
        padding: 16px 12px;
        border: 1px solid var(--sd-border, #e5e7eb);
        margin-bottom: 8px;
    }

    .pm-brand {
        grid-area: brand;
        font-weight: 600;
    }

    .pm-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .pm-number {
        grid-area: number;
        color: var(--sd-muted);
    }

    .pm-expiry {
        grid-area: expiry;
        justify-content: flex-end;
        color: var(--sd-muted);
    }

    .pm-footer-actions {
        flex-direction: column;
    }

    .pm-balance-section {
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}
/* =========================================
   STAFF TABLE GRID
   ========================================= */
.staff-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

/* 3 Columns: Name (2fr), Type (1fr), Gym (1.5fr) */
.staff-header-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 2px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

.staff-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    background-color: var(--sd-bg, #ffffff);
    border-radius: 8px;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    border: 1px solid transparent;
    cursor: pointer;
}

/* THE LINK WRAPPER FIX */
.staff-row-link {
    display: contents;
    text-decoration: none;
    color: inherit;
}

.staff-row-link:hover .staff-row {
    background-color: var(--sd-hover, #f3f4f6);
    border-color: var(--sd-border, #e5e7eb);
}

.staff-header-row .staff-col p {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.staff-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #111827);
    overflow: hidden;
}

/* Row Styling Extras */
.staff-name-col {
    display: flex;
    gap: 12px;
}

.staff-inactive {
    opacity: 0.6;
    /* Grays out the row for inactive staff */
}

.avatar-inactive {
    background-color: var(--sd-muted, #9ca3af);
    /* Gray Avatar */
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */
@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }

    /* 2 Columns on Mobile */
    .staff-header-row,
    .staff-row {
        grid-template-columns: 2fr 1fr;
    }
}
/* =========================================
   ACTIVE PLANS TOGGLE GRID
   ========================================= */
.active-plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
}

.active-plan-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
}

/* ACTIVE STATE */
.active-plan-toggle.is-active {
    border: 1px solid #10b981;
    /* Success Green */
    background: rgba(16, 185, 129, 0.05);
    color: var(--sd-text, #f9fafb);
}

.active-plan-toggle.is-active .plan-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #10b981;
    box-shadow: 0 0 8px rgba(16, 185, 129, 0.6);
    flex-shrink: 0;
}

.active-plan-toggle.is-active:hover {
    background: rgba(16, 185, 129, 0.1);
}

/* INACTIVE STATE */
.active-plan-toggle.is-inactive {
    border: 1px solid var(--sd-border, #374151);
    background: var(--sd-bg, #1f2937);
    color: var(--sd-muted, #9ca3af);
    opacity: 0.8;
}

.active-plan-toggle.is-inactive .plan-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: transparent;
    border: 2px solid var(--sd-muted, #6b7280);
    flex-shrink: 0;
}

.active-plan-toggle.is-inactive:hover {
    opacity: 1;
    border-color: var(--sd-muted, #6b7280);
    color: var(--sd-text, #f9fafb);
}
/* =========================================
   DOORS TABLE GRID
   ========================================= */
.doors-table .table-header,
.doors-table .table-row {
    /* Columns: Name | Status | State | Timer | Actions */
    grid-template-columns: minmax(180px, 2fr) 1fr 1fr minmax(200px, 1.5fr) 60px;
}

.doors-table .col-name,
.doors-table .col-status,
.doors-table .col-state,
.doors-table .col-timer {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #f9fafb);
}

.doors-table .col-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* Helper text colors based on state */
.success-text {
    color: #10b981;
    font-weight: 500;
}

.error-text {
    color: #ef4444;
    font-weight: 500;
}

.muted-text {
    color: var(--sd-muted, #9ca3af);
}

/* =========================================
   MOBILE RESPONSIVENESS (Doors)
   ========================================= */
@media (max-width: 768px) {
    .doors-table .table-row {
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        grid-template-areas:
            "name actions"
            "status status"
            "state state"
            "timer timer";
        gap: 12px 16px !important;
        padding: 16px !important;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 12px;
    }

    .doors-table .mobile-label {
        display: inline-block !important;
        min-width: 80px;
        color: var(--sd-muted, #9ca3af);
        margin-right: 8px;
        font-weight: 500;
    }

    .doors-table .col-name {
        grid-area: name;
        font-size: 16px;
        font-weight: 600;
    }

    .doors-table .col-actions {
        grid-area: actions;
        justify-content: flex-end;
    }

    .doors-table .col-status {
        grid-area: status;
    }

    .doors-table .col-state {
        grid-area: state;
    }

    .doors-table .col-timer {
        grid-area: timer;
        padding-top: 12px;
        border-top: 1px dashed var(--sd-border, #374151);
    }
}
/* =========================================
   KINECT DESKS TABLE GRID
   ========================================= */
.kinect-desks-table .table-header,
.kinect-desks-table .table-row {
    /* Columns: Name | Paired | Activated | Connected | IP */
    grid-template-columns: minmax(180px, 2fr) 1fr 1fr 1fr minmax(150px, 1.5fr);
}

.kinect-desks-table .col-name,
.kinect-desks-table .col-paired,
.kinect-desks-table .col-activated,
.kinect-desks-table .col-connected,
.kinect-desks-table .col-ip {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #f9fafb);
}

/* =========================================
   MOBILE RESPONSIVENESS (Kinect Desks)
   ========================================= */
@media (max-width: 768px) {
    .kinect-desks-table .table-row {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        grid-template-areas:
            "name name"
            "paired activated"
            "connected connected"
            /* FIX: Gave connected its own full row */
            "ip ip";
        /* FIX: Gave IP its own full row */
        gap: 16px 12px !important;
        /* Increased vertical gap for breathing room */
        padding: 16px !important;
        border: 1px solid var(--sd-border, #374151);
        border-radius: 8px;
        margin-bottom: 12px;
    }

    .kinect-desks-table .mobile-label {
        display: inline-block !important;
        min-width: 80px;
        color: var(--sd-muted, #9ca3af);
        margin-right: 8px;
        font-weight: 500;
    }

    /* Keep Name wrapping safely */
    .kinect-desks-table .col-name {
        grid-area: name;
        align-items: flex-start;
    }

    .kinect-desks-table .col-name .cell-value {
        font-size: 16px;
        font-weight: 700;
        white-space: normal;
        word-wrap: break-word;
    }

    .kinect-desks-table .col-paired {
        grid-area: paired;
    }

    .kinect-desks-table .col-activated {
        grid-area: activated;
    }

    .kinect-desks-table .col-connected {
        grid-area: connected;
    }

    .kinect-desks-table .col-ip {
        grid-area: ip;
        /* FIX: Stack the label and the IP box vertically */
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding-top: 16px;
        border-top: 1px dashed var(--sd-border, #374151);
    }

    .kinect-desks-table .col-ip .mobile-label {
        margin-bottom: 8px;
        /* Space between label and the box */
    }

    .kinect-desks-table .col-ip .mono-hash {
        width: 100%;
        box-sizing: border-box;
        word-break: break-all;
        /* Safely wraps crazy long IPv6 addresses */
    }
}
/* =========================================
   TEMPORARY PASSES GRID LAYOUT
   ========================================= */
.temppass-table {
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

/* 4 Columns: Email (2fr), Day (1fr), Facilities (1.5fr), Uses (0.5fr) */
.temppass-header-row,
.temppass-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr 0.5fr;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
}

/* Header Specific Styling */
.temppass-header-row {
    border-bottom: 1px solid var(--sd-border, #e5e7eb);
    margin-bottom: 8px;
}

.temppass-header-row .temppass-col p {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--sd-text, #d1d5db);
}

/* Row Styling & Hover Effects */
.temppass-row {
    background-color: transparent;
    border-radius: 8px;
    transition: background-color 0.2s ease;
    cursor: pointer;
    border: 1px solid transparent;
}

.temppass-row:hover {
    background-color: var(--sd-hover, #374151);
    /* Deep hover color for dark mode */
}

.temppass-col {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--sd-text, #f9fafb);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.temppass-email span {
    font-weight: 500;
}

/* =========================================
   MOBILE RESPONSIVENESS
   ========================================= */
@media (max-width: 768px) {
    .mobile-hide {
        display: none !important;
    }

    /* Shrink to 3 columns on mobile: Email, Day, Uses */
    .temppass-header-row,
    .temppass-row {
        grid-template-columns: 2fr 1fr 50px;
        padding: 12px 10px;
    }
}
.kinect-components-plan-tab {
  display: flex;
  flex-wrap: wrap;
  flex-basis: 30%;
  border-style: solid;
  border-width: .1em;
  border-color: var(--sd-border);
  margin: 0.5%;
  text-align: center;
  padding-bottom: 2%;
  margin-bottom: 1%;
  top: 60px;
  z-index: 1;
  background-color: var(--sd-bg);
  align-items: center;
  align-self: stretch;
  justify-content: center;
  box-shadow: 0 2px 4px var(--sd-shadow);
  border-radius: 12px;
}

.kinect-components-break {
  flex-basis: 100%;
  height: 0;
}

.kinect-components-plan-tab h1,
h2,
h3 {
  opacity: 1;
}

.kinect-components-plan-tab h1 {
  font-size: 60px;
}

.kinect-components-plan-tab h2 {
  font-size: 24px;
}

.kinect-components-break {
  flex-basis: 100%;
  height: 0;
}

.kinect-components-big-header h1 {
  font-weight: 200;
  font-size: 60px;
}

.kinect-components-small-text {
  font-size: 18px;
}

.kinect-components-align-top {
  vertical-align: super;
}

.kinect-components-selected-plan-tab {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;
  height: 100%;
  vertical-align: text-top;
  font-size-adjust: auto;
  border-bottom: 1px solid #e0e0e0;
}

.kinect-components-selected-plan-name {
  display: inline-block;
  position: relative;
  width: 30%;
}

.kinect-components-selected-plan-cost {
  display: inline-block;
  position: relative;
  width: 15%;
}

.kinect-components-selected-plan-access {
  display: inline-block;
  position: relative;
  width: 20%;
}

.kinect-components-selected-plan-passes {
  display: inline-block;
  position: relative;
  width: 20%;
}

.kinect-components-selected-plan-remove {
  display: inline-block;
  position: relative;
  width: 15%;
}

/* =========================================
   ARCHIVED PLAN CARDS
   ========================================= */
.modern-plan-card.archived-card {
  /* Use the standard base color but drop opacity slightly */
  background-color: var(--sd-bg, #1f2937);
  border-color: var(--sd-muted, #4b5563);
  border-style: dashed;
  opacity: 0.75;
  /* Dims the entire card slightly to indicate 'disabled' */
  transition: all 0.2s ease;
}

.modern-plan-card.archived-card:hover {
  opacity: 1;
  border-color: var(--sd-text, #f9fafb);
}

/* Force the text inside to use muted colors so it doesn't look active */
.modern-plan-card.archived-card .plan-title,
.modern-plan-card.archived-card .plan-price-large,
.modern-plan-card.archived-card .plan-billing-freq,
.modern-plan-card.archived-card .plan-detail-item,
.modern-plan-card.archived-card .plan-detail-item b {
  color: var(--sd-muted, #9ca3af) !important;
}

/* Specific fix for the status pill inside an archived card */
.modern-plan-card.archived-card .status-pill {
  background-color: var(--sd-body-bg, #111827);
  color: var(--sd-muted, #9ca3af);
  border: 1px solid var(--sd-muted, #4b5563);
}

/* Keep the footer action buttons visible but muted */
.modern-plan-card.archived-card .plan-card-footer .text-button {
  color: var(--sd-muted, #9ca3af);
}

.modern-plan-card.archived-card .plan-card-footer .text-button:hover {
  color: var(--sd-text, #f9fafb);
}

@media (max-width: 1290px) {
  .kinect-components-plan-tab {
    flex-basis: 33%;
  }
}

@media (max-width: 992px) {
  .kinect-components-plan-tab {
    flex-basis: 75%;
  }

  .kinect-components-selected-plan-name {
    width: 50%;
  }

  .kinect-components-selected-plan-cost {
    width: 20%;
  }

  .kinect-components-selected-plan-access {
    width: 0%;
  }

  .kinect-components-selected-plan-passes {
    width: 0%;
  }

  .kinect-components-selected-plan-remove {
    width: 30%;
  }
}
/* =========================================
   ACCESS SCHEDULE CARD TYPOGRAPHY
   ========================================= */
.schedule-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    /* Pushes content down properly */
    text-align: left;
    /* Forces left alignment instead of centering */
}

.schedule-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.schedule-section-title {
    margin: 0 0 4px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--sd-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.schedule-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.schedule-row {
    display: flex;
    align-items: flex-start;
    /* Keeps multi-line times aligned to the top of the day label */
    font-size: 14px;
    line-height: 1.4;
}

.schedule-label {
    font-weight: 700;
    color: var(--sd-text, #111827);
    min-width: 48px;
    /* Ensures the days stack in a neat, uniform column */
    margin-right: 8px;
}

.schedule-value {
    color: var(--sd-text, #111827);
    flex: 1;
}

.schedule-value.muted {
    color: var(--sd-muted, #6b7280);
    font-style: italic;
}


/* =========================================
   CENTERED POPUP WRAPPER
   ========================================= */
.access-schedule-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 600px;
    max-height: 85vh;
    /* Prevents it from going off-screen on short monitors */
    overflow-y: auto;
    /* Internal scrolling */
    background-color: var(--bg-main, #111827);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 12px;
    z-index: var(--popup-z-index, 1000);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* Ensure the wrapper handles the padding so the scrollbar hugs the edge */
.schedule-card {
    padding: 32px;
}

/* Action button grouping for the new copy button */
.day-title-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.schedule-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.days-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* =========================================
   DAY CARD COMPONENT
   ========================================= */
.day-card {
    background-color: var(--sd-bg, #111827);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 8px;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
}

.day-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.day-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--sd-text, #f9fafb);
    width: 60px;
    /* Ensures vertical alignment across all cards */
}

/* =========================================
   SEGMENTED TOGGLE (Replaces Checkboxes)
   ========================================= */
.segmented-toggle {
    display: flex;
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 6px;
    padding: 4px;
}

.toggle-btn {
    background: transparent;
    border: none;
    color: var(--sd-muted, #9ca3af);
    padding: 6px 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.toggle-btn:hover {
    color: var(--sd-text, #f9fafb);
}

.toggle-btn.active {
    background-color: var(--sd-border, #4b5563);
    color: var(--sd-text, #f9fafb);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* =========================================
   CUSTOM RANGES & DROPDOWNS
   ========================================= */
.custom-ranges-container {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed var(--sd-border, #374151);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.range-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.range-divider {
    color: var(--sd-muted, #9ca3af);
    font-size: 14px;
    font-weight: 500;
}

/* Assumes your legacy Dropdown needs a flex wrapper to behave inline */
.dropdown-wrapper {
    flex: 1;
}

.dropdown-wrapper select,
.dropdown-wrapper .your-custom-dropdown-class {
    width: 100%;
    /* Force legacy dropdowns to fill the wrapper */
}

/* =========================================
   ACTION BUTTONS
   ========================================= */
.add-range-text-btn {
    background: transparent;
    border: none;
    color: var(--default-red, #8A2B2B);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 8px 0;
    text-align: left;
    width: max-content;
}

.add-range-text-btn:hover {
    text-decoration: underline;
}

.icon-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 6px;
    border-radius: 4px;
    color: var(--sd-muted, #9ca3af);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.icon-btn.danger:hover {
    color: #ef4444;
    background-color: rgba(239, 68, 68, 0.1);
}
/* =========================================
   LABEL TAG STYLING (Light & Dark Mode)
   ========================================= */

.label-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 20px;
    /* Pill shape */
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    margin: 2px;
    transition: all 0.2s ease;

    /* Default Light Mode Styling */
    /* Uses the injected color directly */
    background-color: var(--label-color);
    /* We assume the provided label color is relatively light. 
       We enforce a dark text color for contrast. */
    color: #111827;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.label-tag.clickable {
    cursor: pointer;
}

.label-tag.clickable:hover {
    filter: brightness(0.95);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.label-text {
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

/* =========================================
   DARK MODE ADJUSTMENTS
   ========================================= */
[data-theme='dark'] .label-tag {
    /* In dark mode, solid bright backgrounds are harsh.
       Instead, we use a translucent background and make the text/border 
       the solid color. 
       Note: This requires the hex color to be converted to RGB, or using a 
       color-mix technique if available. Since you are storing raw hex strings,
       the cleanest cross-browser fallback without JS conversion is this:
    */
    background-color: transparent;
    color: var(--label-color);
    border: 1px solid var(--label-color);

    /* Optional: A very subtle background using the page's standard hover color */
    background-color: var(--sd-hover, #2d3748);
}

[data-theme='dark'] .label-tag.clickable:hover {
    background-color: var(--label-color);
    color: #111827;
    /* Invert text on hover */
}


/* =========================================
   REMOVE BUTTON STYLING
   ========================================= */
.label-remove-btn {
    background: transparent;
    border: none;
    padding: 2px;
    margin-left: 2px;
    margin-right: -4px;
    cursor: pointer;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
    transition: opacity 0.2s ease;
    border-radius: 50%;
}

.label-remove-btn:hover {
    opacity: 1;
    background-color: rgba(0, 0, 0, 0.1);
}

[data-theme='dark'] .label-remove-btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
}
/* =========================================
   CALENDAR TOOLBAR
   ========================================= */
.calendar-toolbar {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--sd-border, #374151);
}

.date-navigator {
    display: flex;
    align-items: center;
    gap: 12px;
}

.calendar-month-display {
    margin: 0 0 0 16px;
    font-size: 18px;
    font-weight: 700;
    color: var(--sd-text, #f9fafb);
}

/* =========================================
   THE CALENDAR GRID
   ========================================= */
.modern-calendar-grid-container {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
    padding: 0;
}

/* Add a little padding to the scroll track itself so the first/last columns don't jam against the walls */
.modern-calendar-grid {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 16px 16px 16px;
    flex-grow: 1;
}

/* Scroll Arrows */
.calendar-scroll-arrow {
    background: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    color: var(--sd-text, #f9fafb);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: absolute;
    top: 24px;
    transform: translateY(-50%);

    z-index: 10;
    transition: all 0.2s ease;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.5);
}

.calendar-scroll-arrow:hover {
    background: var(--sd-hover, #374151);
    color: var(--default-red, #ef4444);
}

/* Float the arrows over the grid, just inside the edges */
.left-arrow {
    left: 2px;
}

.right-arrow {
    right: 2px;
}

/* Hide scrollbar structurally for a cleaner look */
.modern-calendar-grid::-webkit-scrollbar {
    height: 8px;
}

.modern-calendar-grid::-webkit-scrollbar-track {
    background: transparent;
}

.modern-calendar-grid::-webkit-scrollbar-thumb {
    background: var(--sd-border, #374151);
    border-radius: 4px;
}

/* =========================================
   DAY COLUMNS
   ========================================= */
.modern-day-column {
    min-width: 300px;
    /* Increased from 280px */
    max-width: 350px;
    /* Increased from 320px */
    flex: 1;
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    background-color: transparent;
    transition: background-color 0.2s ease;
}

/* The "Today" Highlight */
.modern-day-column.is-today {
    /* Very subtle highlight */
    border: none;
}

.day-column-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 0;
    margin-bottom: 8px;
    border-bottom: 2px solid var(--sd-border, #374151);
}

.day-column-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sd-text, #f9fafb);
}

.today-badge {
    background-color: var(--default-red, #8A2B2B);
    color: white;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    text-transform: uppercase;
}

.day-column-events {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 8px;
}

/* =========================================
   EVENT CARDS
   ========================================= */
.modern-event-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    /* Reduced from 16px to give text more room */
    background-color: var(--sd-bg, #1f2937);
    border: 1px solid var(--sd-border, #374151);
    border-radius: 8px;
    padding: 16px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.modern-event-card:hover {
    background-color: var(--sd-hover, #374151);
    border-color: var(--default-red, #8A2B2B);
    transform: translateY(-2px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}

.event-time {
    font-weight: 700;
    font-size: 13px;
    /* Shrunk slightly */
    color: var(--sd-text, #f9fafb);
    min-width: 55px;
    /* Reduced from 70px */
    padding-top: 2px;
    white-space: nowrap;
    /* Forces "12:45 pm" to stay on one line */
}

.event-details {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.event-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--sd-text, #f9fafb);
    line-height: 1.3;
    width: 100%;
}

.event-host {
    font-size: 12px;
    color: var(--sd-muted, #9ca3af);
    font-weight: 500;
}
/* Sidebar Container */
sidebar {
    position: fixed;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: var(--sidebar-z-index, 100);
    padding: 24px 12px;
    /* Slightly tighter side padding so the pill fills the space better */
    top: 60px;
    width: var(--side-bar-width, 240px);
    height: calc(100vh - 60px);
    background-color: #8A2B2B;
    /* Deep red to match the mockup */
    border-right: none;
    box-sizing: border-box;
}

/* Lists and Spacing */
.sidebar-list {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    /* Tighter spacing between menu items */
}

.bottom-list {
    margin-bottom: 24px;
}

.sidebar-list-item {
    width: 100%;
    margin: 0;
    /* Reset any default list item margins */
}

/* Base Button Styles - The Fix */
.sidebarButton {
    box-sizing: border-box;
    display: flex;
    /* Flexbox fixes the vertical sinking issue */
    align-items: center;
    /* Perfectly centers text top-to-bottom */
    width: 100%;
    min-height: 42px;
    /* Consistent target area for clicking */
    padding: 0 16px;
    /* Horizontal padding only, flex handles the vertical */
    border: none;
    border-radius: 8px;
    /* Clean pill shape */
    color: rgba(255, 255, 255, 0.75);
    /* Crisper inactive text */
    background-color: transparent;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    letter-spacing: 0.05rem;
    font-size: 13px;
    /* Slightly adjusted font size */
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

/* Remove default focus outlines for a cleaner look */
.sidebarButton:focus {
    outline: none;
}

/* Hover State */
.sidebarButton:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.08);
}

/* Active State (The Pill) */
.sidebarButton.active {
    color: #8A2B2B;
    /* Changed to match the sidebar background for a clean look */
    background-color: var(--sd-bg, #FCFAF8);
    /* Warm off-white */
    font-weight: 500;
    /* Lowered from 700 to match the clean weight of the other links */
    box-shadow: var(--sd-shadow, 0 1px 2px rgba(0, 0, 0, 0.05));
    transition: all 0.2s ease-in-out;
}

/* Sub-menu Buttons */
.sidebarButtonSmall {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 32px;
    padding: 0 16px 0 32px;
    /* Indented padding to show hierarchy */
    border: none;
    color: rgba(255, 255, 255, 0.65);
    background-color: transparent;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    letter-spacing: 0.05rem;
    font-size: 11px;
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease;
}

.sidebarButtonSmall:hover {
    color: #ffffff;
}

/* Optional: Subtle hover tweak for dark mode */
[data-theme='dark'] .sidebarButton:hover {
    background-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.sidedrawer {
    height: 100%;
    background-color: #B73C3A
        /*c3322d*/
    ;
    box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.5);
    position: fixed;
    top: 0;
    z-index: var(--sidedrawer-z-index);
    right: 0;
    width: 70%;
    max-width: 400px;
    transform: translateY(-100%);
    transition: transform 0.3s ease-out;
}

.sidedrawer.open {
    transform: translateY(0);
}

.sidedrawer ul {
    height: 100%;
    list-style: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #191c22;
}

.sidedrawer li {
    margin: 0.5rem 0;
}

.sidedrawer a {
    color: white;
    text-shadow: .05rem .05rem #191c22;
    font-family: montserrat;
    font-stretch: expanded;
    letter-spacing: .1rem;
    font-size: 16px;
}

.sidedrawer a:hover,
.sidedrawer a:active {
    text-decoration: none;
    color: #f2f2f2;
}

/* Container for the mobile list */
.mobile-nav-list {
    display: flex;
    flex-direction: column;
    padding: 24px 16px;
    /* Give it some breathing room from the edges */
    margin: 0;
}

/* Ensure the buttons stack nicely */
.mobile-nav-list li {
    margin-bottom: 8px;
    /* Consistent gap between items */
}

/* Specific spacing for the sub-menus so they look attached to the parent */
.mobile-nav-list .sidebarButtonSmall {
    margin-top: -4px;
    /* Pull it slightly closer to the parent */
    margin-bottom: 8px;
    padding-left: 24px;
    /* Indent the text */
}

.mobile-nav-list .sidebarButtonSmall a {
    font-size: 14px;
    /* Slightly smaller text for hierarchy */
    color: rgba(255, 255, 255, 0.7);
    /* Dimmer color */
}

/* Adds a bit of extra space above the "My Account" group */
.spacer-top {
    margin-top: 24px !important;
}

/* =========================================
   MOBILE MENU TAP HIGHLIGHTS
   ========================================= */

/* Make the links fill the entire row for a bigger touch target */
.mobile-nav-list a {
    display: block;
    padding: 10px 16px;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color 0.1s ease;

    /* This removes the ugly default blue tap-highlight on iOS/Android */
    -webkit-tap-highlight-color: transparent;
}

/* Adjust the sub-menu links so the background highlight covers the indent */
.mobile-nav-list .sidebarButtonSmall a {
    padding-left: 32px;
}

/* THE HIGHLIGHT: 
   Flashes a bright, translucent white box over the item exactly while the user's finger is pressing it 
*/
.mobile-nav-list a:active {
    background-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}

/* Remove the left padding we previously put on the <li> since it's now on the <a> */
.mobile-nav-list .sidebarButtonSmall {
    padding-left: 0;
}

@media (max-width: 1140px) {
    sidebar {
        display: none;
    }
}

@media (min-width: 1140px) {
    .sidedrawer {
        display: none;
    }
}
/* Container reset */
.toggle-button {
    background: transparent;
    border: none;
    padding: 4px;
    margin-left: 10px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    color: var(--default-red, #8A2B2B);
    /* Matches your brand color */
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* Sizing the SVG */
.toggle-button svg {
    width: 26px;
    /* Slightly larger than standard icons for easy tapping */
    height: 26px;
}

/* Subtle hover effect to match the others */
.toggle-button:hover {
    transform: scale(1.05);
    opacity: 0.8;
}

.toggle-button:active {
    transform: scale(0.95);
}

@media (max-width: 1140px) {
    .toggle-button {
        display: active;
    }
}

@media (min-width: 1140px) {
    .toggle-button {
        display: none;
    }
}
/* Core Header Structure - Now White! */
.main-header {
    z-index: var(--header-z-index, 1000);
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: var(--nav-bar-height);
    background-color: var(--sd-bg);
    /* Flips between #ffffff and #1e1e1e */
    /* Clean white background */
    border-bottom: 1px solid var(--sd-border);
    /* Subtle bottom border instead of harsh shadow */
}

.nav-bar-parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}

.spacer {
    flex: 1;
}

/* Logo */
.nav-bar-logo-container {
    display: flex;
    align-items: center;
    height: 100%;
    cursor: pointer;
}

.nvLogo {
    width: auto;
    height: var(--nav-bar-height);
    object-fit: contain;
}

/* Navigation Lists */
.header-nav {
    display: flex;
    align-items: center;
    height: 100%;
}

.header-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 20px;
    /* Spacing between icons and text */
}

.header-nav-list a {
    text-decoration: none;
    display: flex;
    align-items: center;
}

/* Icons - Now Red! */
.nav-icon {
    width: 22px;
    height: 22px;
    color: #8A2B2B;
    /* Dark red icons from the mockup */
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.nav-icon:hover {
    opacity: 0.7;
}

/* Profile / Account Area */
.account-profile-link a {
    display: flex;
    align-items: center;
    gap: 10px;
    border-left: 1px solid var(--sd-border);
    /* Optional divider line before profile */
    padding-left: 20px;
}

.avatar-circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.avatar-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.account-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
}

.account-label {
    font-size: 11px;
    color: var(--sd-muted);
    /* Light gray text for "My Account" */
    line-height: 1.2;
}

.account-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--sd-text);
    /* Dark text for name */
    line-height: 1.2;
}

.display-mobile-only {
    display: none;
}

.no-display-mobile {
    display: active;
}

/* Ensure the list items center their contents perfectly */
.nav-icon-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    /* Ensures it fills the navbar height for alignment */
}

/* Reset the button to look identical to your <a> tags */
.nav-icon-btn {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: inherit;
    /* Inherits the text color for Dark Mode compatibility */
}

/* Optional: Ensure all SVGs inside the nav are identical sizes */
.nav-icon-link svg.nav-icon {
    width: 24px;
    height: 24px;
    display: block;
    /* Removes inline-block baseline spacing bugs */
}

@media (max-width: 768px) {
    .display-mobile-only {
        display: active;
    }

    .no-display-mobile {
        display: none;
    }
}
.theme-toggle-btn {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    outline: none;
    transition: transform 0.2s ease;
}

/* Hover animation: slight tilt or scale */
.theme-toggle-btn:hover {
    transform: rotate(15deg) scale(1.1);
}

/* Ensure the icon color matches your existing nav-icon styling */
.theme-toggle-btn .nav-icon {
    width: 22px;
    height: 22px;
    /* This variable ensures it stays red in both modes 
       or flips colors if you prefer */
    color: var(--default-red);
    stroke-width: 1.5;
    transition: color 0.3s ease;
}

/* Optional: Active state feedback */
.theme-toggle-btn:active {
    transform: scale(0.95);
}
