/* Base font for the whole app */
body {
    font-family: 'Inter', sans-serif;
    font-size: 16px; 
    font-weight: 400;
    line-height: 1.5;
    color: #16141C;
}






.boogalo-3xl {
    font-family: 'Boogaloo';
    font-size: 32px; 
    font-weight: 400; 
    font-style: normal;
    line-height:100%;
    letter-spacing: 0;
    
}

.boogalo-2xl {
    font-family: 'Boogaloo';
    font-size: 28px; 
    font-weight: 400; 
    font-style: normal;
    line-height:100%;
    letter-spacing: 0;
    
}

.boogalo-xl {
    font-family: 'Boogaloo';
    font-size: 24px; 
    font-weight: 400; 
    font-style: normal;
    line-height:100%;
    
     letter-spacing: 0;   
}

.inter-3xl {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-2xl {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-xl {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-l-semi-bold {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-l-medium {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-m-semi-bold {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-m-medium {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-m-regular {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-s-semi-bold {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-s-medium {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-s-regular {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-xs-semi-bold {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-xs-semi-medium {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
}

.inter-xs-regular {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
}

.inter-2xs-semi-bold {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-2xs-medium {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}

.inter-2xs-regular {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}

.black-1000 {
  color: #1E1A2E;
}

.black-900 {
  color: #353143;
}

.black-800 {
  color: #4B4858;
}

.black-700 {
  color: #625F6D;
}

.black-600 {
  color: #72737F;
}

.black-500 {
  color: #A5A9B1;
}

.black-400 {
  color: #D1D5DB;
}

.black-300 {
  color: #E5E7EB;
}

.black-200 {
  color: #F3F4F6;
}

.black-100 {
  color: #F9FAFB;
}

/* Pink Shades */
.pink-600 {
  color: #EC3C88;
}

.pink-500 {
  color: #F6579C;
}

.pink-300 {
  color: #FBA3C7;
}

.pink-100 {
  color: #FEF1F7;
}

/* Blue Shades */
.blue-500 {
  color: #34CCCC;
}

.blue-300 {
  color: #AEEBEB;
}

.blue-200 {
  color: #E7F9F9;
}

.blue-100 {
  color: #FCFEFE;
}

/* Peach Shades */
.peach-300 {
  color: #F3B0A9;
}

.peach-200 {
  color: #FFD6D1;
}

.peach-100 {
  color: #FFE8DF;
}

/* Named Colors */
.red {
  color: #EC3C3F;
}

.white {
  color: #FFFFFF;
}

.logo-container a
{
    padding-top:41px;
    
}

.signup-right-bg {
  background-color: #E7F9F9; /* mint base */
  background-image: url('/assets/img/icons/bg-signup-flakes.svg');
  background-repeat: repeat;
  background-size: 10px 7px;  /* small tile to mimic high-frequency noise */
  background-position: center;
  height: 96%;
}

.login-right-bg {
 
  background-image: url('/assets/img/general/login-forgot-pass-right-image.png');
  background-position: center 40px; /* 40px from the top */
  height: 96%;
}

.google-button
{
  width: 100%;
  height: 48px;
  opacity: 1;
  gap: 12px;
  border-radius: 8px;
  border-width: 1px;
  border-style: solid;
  padding: 12px 20px; 
  background:white; 
  display: inline-flex;
  align-items: center; 
  justify-content: center;
}

.button-icon-right{
  display:inline-flex;                 /* flex so gap works */
  align-items:center;
  justify-content:center;
  gap:12px;                            /* <-- 12px space between text and icon */
  width:100%;
  height:48px;
  padding:12px 20px;
  border-radius:8px;
  border:none;
  background:#F6579C;
  color:#fff;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  font-weight:600;
  font-size:16px;
  line-height:1;
}

.button-icon-right:disabled{
  background:#E5E7EB;
  color:#A5A9B1;
  cursor:not-allowed;
}

/* your existing button styles ... */

/* one span, default = grey icon */
.button-icon-right .icon{
  width:20px; height:20px; flex:0 0 20px; display:inline-block;
  background: center / contain no-repeat url('/assets/img/icons/chevron-right-grey.svg');
}

/* turn white while interactive (hover/focus/active) */
.button-icon-right:hover .icon,
.button-icon-right:focus-visible .icon,
.button-icon-right:active .icon{
  background-image: url('/assets/img/icons/chevron-right-white.svg');
}

/* keep grey when disabled (optional explicit) */
.button-icon-right:disabled .icon{
  background-image: url('/assets/img/icons/chevron-right-grey.svg');
}

.button-icon-right:not(:disabled) .icon{
  background-image: url('/assets/img/icons/chevron-right-white.svg');
}


.signup-border
{
 border-color:#D1D5DB;
    
}

.form-control 
{
  height:48px;  
}

/* make the input + button look like a single control */

/* input + icon button look like one control */
.input-group .form-control{

  border-color:#dfe4ec;
  border-right:0;                 /* <-- no border next to the icon */
}

.input-group .btn-icon{
  border:1px solid #dfe4ec;
  border-left:0;                  /* <-- remove the left divider */
  background:transparent;
  width:44px; padding:0;
  display:flex; align-items:center; justify-content:center;
}
.input-group .btn-icon img{
  display:block; width:20px; height:20px;
  filter:grayscale(30%) opacity(.85);
}

/* optional: match focus on both pieces */
.input-group:focus-within .form-control,
.input-group:focus-within .btn-icon{
  border-color:#F6579C;
  
}
.input-group .form-control:focus{ box-shadow:none;  } /* ring comes from group */

.form-control:focus{
  border-color:#F6579C;                     /* your pink */
  box-shadow: none;
  outline:0;
}

.signup-checkbox-terms
{
  border:1px solid #D1D5DB;
  border-radius:6px !important;
  width:20px;
  height:20px;
  color:white;
}

.signup-checkbox-terms:focus
{
  border:1px solid #F6579C;
  color: #F6579C;
  box-shadow:none;    
}

.signup-checkbox-terms:checked
{
  background-image:url('/assets/img/icons/icon-checkmark.png');
  background-repeat:no-repeat;
  background-position:center;
  background-size:9.33px 6.42px;      /* tweak to your PNG */
   background-color:#fff; /* keep white box */
  border-color:#ff4f9a;  
}

.rating-stars{
  display:inline-flex;
  gap:6px;                              /* spacing between boxes */
}

.star-box{
  width:26px; height:26px;
  border-radius:6px;
  background:#F6579C;                   /* pink background */
  color:#fff;                           /* white star */
  display:inline-flex;
  align-items:center; justify-content:center;
  font-size:16px; line-height:1; font-weight:800; /* crisp star */
  text-shadow:0 1px 0 rgba(0,0,0,.12);
}




/* Use your SVG file as the icon */
.badge-check{
  width:24px;                 /* tweak to your design */
  height:24px;
  display:inline-block;       /* so it behaves like an icon */
  flex:0 0 24px;              /* keeps fixed size inside .d-flex rows */
  background: center / contain no-repeat url('/assets/img/icons/pink-checkmark-signup.svg');
  /* remove any leftover text styles from earlier */
  color:transparent; 
}

/* if you want a tiny nudge to align with text */
.badge-check { vertical-align: top; }

/* keep content above the art; art above the panel bg */
.hero-card{ position:relative; overflow:hidden; }
.hero-card .hero-content{ position:relative; z-index:2; }

/* stronger, crisper background images */
.bg-anim{
  position:absolute;
  z-index:1;                      /* sits under .hero-content */
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  opacity:1;                      /* was .95 -> make fully opaque */
  filter: brightness(1.05) contrast(1.25) saturate(1.1);
}

/* add a soft white halo behind each image to lift it off the mint */
.bg-anim::before{
  content:"";
  position:absolute;
  background: radial-gradient(closest-side, rgba(255,255,255,.50), rgba(255,255,255,0) 65%);
  filter: blur(10px);
  z-index:-1;                     /* stays behind its image */
}

/* positions & gentle motion (tweak sizes/coords to taste) */
.bg-top{
  background-image:url('/assets/img/icons/signup-animatie-top.png');
  width:560px; height:560px;  top:-110px; right:-40px;
  
}
.bg-left{
  background-image:url('/assets/img/icons/signup-animatie-left.png');
  width:320px; height:320px; left:-116px; top:75%;  transform:translateY(-50%);
  
}
.bg-bottom{
  background-image:url('/assets/img/icons/signup-animatie-bottom.png');
  width:680px; height:680px; right:-130px;  bottom:-120px;
  
}


.dropdown-events
{
    display: flex;
    height: 48px;
    padding: 10px 14px;
    align-items: center;
    gap: 8px;
    align-self: stretch;
    border-radius: 8px;
    border: 1px solid var(--Pink-600, #EC3C88);
    background: var(--White, #FFF);   
}

.dropdown-user
{
background-color: white;
border: none;
padding-left: 16px;
padding-right: 16px; 
  
}

 .menu-divider-top
 {
  width: 268px;
  height: 1px;
  background: #F3F4F6;
  margin-top:16px;
  margin-bottom:16px;  
 }
 
.menu-divider-bottom
 {
  width: 268px;
  height: 1px;
  background: #F3F4F6;
  margin-top:12px;  
 }


.blue-badge
{
display: flex;
padding: 4px 8px;
justify-content: center;
align-items: center;
gap: 10px; 
border-radius: 16px;
background: var(--Blue-200, #E7F9F9);  
}

.left-menu-hr
{
  width: 268px;
  height: 1px;
  background: var(--Black-200, #F3F4F6);  
}

.left-menu-item {
  display: flex;
  width: 268px;
  height: 48px;
  padding: 12px 36px 12px 16px;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
  border-radius: 12px;
  text-decoration: none;
}

.left-menu-item.active {
  border-radius: 8px;
  background: var(--Pink-100, #FEF1F7);
  
}

.left-menu-plan-details
{
display: flex;
width: 268px;
padding: 20px;
flex-direction: column;
gap: 16px;
border-radius: 7px;
border: 1px solid rgba(55, 205, 205, 0.40);
background: linear-gradient(248deg, rgba(255, 255, 255, 0.70) 1.26%, rgba(239, 251, 251, 0.70) 56.51%);
}
 

.upgrade-plan-button
{
display: flex;
width: 228px;
padding: 10px 16px 10px 8px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
border: 1px solid var(--Pink-600, #EC3C88);
background: var(--Pink-100, #FEF1F7);
}

.left-menu-item-icon
{
 width:24px;
 height:24px;   
}

.left-menu-profile-icon
{
 width:16px;
 height:16px;
}

/* User avatar in the sidebar footer — keep uploaded photos a neat round 36px
   (the default icon has its own size; presigned photos need cropping). */
.left-menu-user-avatar
{
 width:36px;
 height:36px;
 object-fit:cover;
 flex-shrink:0;
}

/* Wrapper track (transparent like your design) */
.progress-thin {
  height: 6px;                 /* match your size */
  border-radius: 20px;
  background: transparent;     /* or a subtle track color if you want */
  border: 0.3px solid var(--Black-400, #D1D5DB);
  overflow: hidden;            /* keep fill rounded */
}

/* Fill */
.progress-fill {
  height: 100%;
  border-radius: 20px;         /* keeps ends rounded */
  background: linear-gradient(90deg, #FFEDED 0%, #EC3C88 100%);
  transition: width .3s ease;  /* smooth updates */
}

 /* Dashboard */

.card-blue
{
 display: flex;
padding: 20px;
align-items: center;
gap: 16px;
flex: 1 0 0;
border-radius: 8px;
border: 1px solid var(--Blue-500, #34CCCC);
background: #CFFFFF;
--bs-card-border-color: none;  
}

.card-peach
{
display: flex;
padding: 20px;
align-items: center;
gap: 16px;
flex: 1 0 0; 
border-radius: 8px;
border: 1px solid var(--Peach-300, #F3B0A9);
background: var(--Peach-100, #FFE8DF);

}

.white-badge
{
 display: flex;
padding: 6px 10px;
align-items: center;
gap: 4px; 
border-radius: 8px;
background: var(--White, #FFF);  
}

.pink-badge
{
 display: flex;
padding: 6px 10px;
align-items: center;
gap: 4px; 
border-radius: 8px;
background: var(--Pink-100, #FEF1F7);  
}




.input-group-copy-share{
  border-radius: 8px;
  border: 1px solid var(--Blue-300, #AEEBEB);
  background: var(--Blue-100, #FCFEFE);
  padding: 0px 14px;
}

/* make inner controls transparent so the parent draws the box */
.input-group-copy-share .form-control{
  border: 0;
  background: transparent;
  box-shadow: none;
  padding-left: 0;         /* optional: match Figma spacing */
}
.input-group-copy-share .form-control:focus{
  box-shadow: none;
}

/* icon buttons: no box, just separators */
.input-group-copy-share .icon-btn{
  border: 0;
  background: transparent;
  width: 40px;             /* adjust to your spec */
  height: 47px;
  padding: 0;
  gap:8px;
  display: flex;
  align-items: center;
  justify-content: center;
}


/* if you ever use input-group-text here, make it transparent too */
.input-group-copy-share .input-group-text{
  background: transparent;
  border: 0;
}


.white-outline-button
{
display: flex;
height: 48px;
padding: 12px 20px;
justify-content: center;
align-items: center;
gap: 8px;
align-self: stretch;
border-radius: 8px;
border: 1px solid var(--Pink-500, #F6579C);
background:white;
width:100%;
text-decoration: none;
}
/* When used as an <a> with Bootstrap's d-block, keep the icon+label centred
   (d-block would otherwise override the flex centring above). */
a.white-outline-button { text-decoration: none; }

/* Borderless secondary action next to .onboarding-modal-next-button, e.g. "I'll do this later" / "Start with Free". */
.white-outline-button-plain
{
display: flex;
height: 48px;
padding: 12px 20px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
border: none;
background: transparent;
}


/* Media */

.album-button
{
    display: flex;
    padding: 9.5px 24px;
    justify-content: center;
    align-items: center;
    gap: 12px;
    border-radius: 8px;
    border: 1px solid var(--Black-300, #E5E7EB);
    background: var(--Black-100, #F9FAFB);
  
}
.album-button.active {
    border-radius: 8px;
    background: var(--Pink-500, #F6579C);
    /* Shadow 1 */
    box-shadow: 0 -1px 8px 0 rgba(90, 84, 84, 0.05), -2px 100px 100px -70px rgba(88, 92, 98, 0.15);
    color:white;
}

.album-button .pencil-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: no-repeat center/contain url("/assets/img/icons/grey-pencil.svg");
}

/* Active button shows white pencil */
.album-button.active .pencil-icon {
  background-image: url("/assets/img/icons/white-pencil.svg");
}

.album-button-add
{
display: flex;
width: 40px;
height: 40px;
padding: 8px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
border: 1px solid var(--Black-400, #D1D5DB);
background:white;   
}

/* toggle */
.media-dropdown {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 10px 14px;
  border: 1px solid var(--Black-400, #D1D5DB);
  border-radius: 8px;
  background: var(--White, #FFF);
}

/* menu items */
.media-dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 10px 14px;
  border: none;
  background: var(--White, #FFF);
  color: var(--Black-1000, #1E1A2E);
  width: 100%;              /* ensures button fills the li */
  text-align: left;
}

.media-dropdown-item:focus {
  outline: none;
}

.media-dropdown-item.active {
  background: var(--Pink-100, #FEF1F7);
  color: var(--Pink-600, #EC3C88);
}

.media-export-button
{
 display: flex;
height: 40px;
padding: 10px 16px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
border: 1px solid var(--Black-400, #D1D5DB);
background: white;   
}

.album-button-delete
{
display: flex;
width: 40px;
height: 40px;
padding: 8px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
border: 1px solid var(--Black-400, #D1D5DB);
background:white;   
}

.media-card {
  width: 205px;
  height: 205px;
  border-radius: 8px;     /* matches your figma */
  overflow: hidden;       /* keep images clipped */
}

/* toolbar container: centered at bottom, hidden until hover */
.media-card-toolbar{
  position:absolute;
  left:0; right:0; bottom:0;
  display:flex;
  justify-content:center;
  gap:12px;                 /* space between tools */
  padding:8px;              /* breathing room from bottom edge */
  opacity:0;
  transform:translateY(100%);
  transition:all .18s ease;
  pointer-events:none;      /* avoid hover flicker until visible */
  z-index:4;
}

/* reveal on hover */
.media-card:hover .media-card-toolbar{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

/* optional: subtle dark fade behind tools (comment out if not wanted) */
.media-card:hover::after{
  content:"";
  position:absolute; inset:0 0 0 0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.25) 100%);
  border-radius:8px;
  z-index:1;
}

/* Figma-style tool button: 28x28, 4px padding, white bg, 4px radius */
.media-tool{
  display:flex;
  justify-content:center;
  align-items:center;
  width:28px;
  height:28px;
  padding:4px;             /* leaves ~20px content box */
  aspect-ratio:1/1;
  gap:4px;
  background:#FFF;         /* var(--White) */
  border:none;
  border-radius:4px;
  box-shadow:0 1px 2px rgba(0,0,0,.08);
  cursor:pointer;
}

/* icon inside (your exported SVGs) */
.media-tool > img{
  width:20px;
  height:20px;
  display:block;
}

/* states */
.media-tool:hover{ box-shadow:0 2px 6px rgba(0,0,0,.12); }
.media-tool:active{ transform:translateY(1px); }
.media-tool:focus-visible{
  outline:2px solid rgba(0,123,255,.4);
  outline-offset:2px;
}


/* 28x28 white container positioned at 10px/10px */
.media-check{
  position:absolute;
  left:10px;
  top:10px;
  display:flex;
  width:28px;
  height:28px;
  padding:4px;                 /* -> inner box will be 20x20 */
  justify-content:center;
  align-items:center;
  gap:4px;
  aspect-ratio:1/1;
  border-radius:4px;
  background:#fff;             /* var(--White, #FFF) */
   z-index: 5; /* higher than toolbar */
}

/* hide native checkbox but keep it accessible */
.media-check-input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  margin:0;
}

/* 20x20 inner square */
.media-check-box{
  width:20px;
  height:20px;
  border-radius:4px;
  border:1px solid #D1D5DB;    /* var(--Black-400) */
  background:#fff;
  transition:all .15s ease;
}

/* focus ring (keyboard) */
.media-check-input:focus-visible + .media-check-box{
  outline:2px solid rgba(0,123,255,.35);
  outline-offset:2px;
}

/* checked state: pink fill + white check */
.media-check-input:checked + .media-check-box{
  border-color:#EC3C88;        /* var(--Pink-600) */
  background:#EC3C88 center/14px no-repeat
    url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="white"><path d="M6.173 12.067 2.4 8.293l1.414-1.414 2.36 2.36 6.01-6.01 1.414 1.414z"/></svg>');
}

/* optional hover */
.media-check:hover .media-check-box{
  border-color:#C5CAD1;
}

#bulkToolbar
{
border-radius: 8px;
border: 1px solid var(--Blue-500, #34CCCC);
background: var(--Blue-100, #FCFEFE);

}

.bulktoolbar-icon
{
    border-radius: 8px;
    border: 1px solid var(--Pink-500, #F6579C);
    display: flex;
    width: 40px;
    height: 40px;
    padding: 8px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    background:white;
}



 /* UPGRADE PAGE */

 .currency-switcher-button
 {
display: flex;
height: 48px;
padding: 10px 14px;
align-items: center;
gap: 8px;
align-self: stretch;  
border-radius: 8px;
border: 1px solid var(--Black-400, #D1D5DB);
background: var(--White, #FFF);
 }
 
.selected-plan-button
{
display: flex;
height: 44px;
padding: 10px 18px;
justify-content: center;
align-items: center;
gap: 10px;
align-self: stretch;
border-radius: 8px;
border: 1px solid var(--Black-600, #72737F);
background: var(--Black-100, #F9FAFB);    
}

.discount-badge
{
 
padding: 6px 10px;
justify-content: center;
align-items: center;
gap: 10px;
border-radius: 12px;
background: var(--Pink-500, #F6579C);
color:white;
font-size:18px;  
}

.upgrade-button-pink
{
display: flex;
height: 44px;
padding: 10px 18px;
justify-content: center;
align-items: center;
gap: 8px;
align-self: stretch; 
border-radius: 8px;
background: var(--Pink-500, #F6579C); 
color:white;
border:none;
}

.plan-card
{
border-radius: 12px;
border: 1px solid var(--Black-300, #E5E7EB);
background: var(--White, #FFF);
padding:20px;
}
.plan-card-active
{
border-radius: 12px;
border: 1px solid var(--Pink-300, #FBA3C7);
background: var(--White, #FFF);
padding:20px;
}

.recommended-badge
{
border-radius: 0 8px;
background: var(--Pink-100, #FEF1F7);
display: flex;
padding: 4px 10px;
justify-content: center;
align-items: center;
gap: 10px;
position: absolute;
right: 0.336px; 
margin:0px !important; 
}

.upgrade-card-usps
{
 border-radius: 12px;
border: 1.5px solid var(--Black-300, #E5E7EB); 
display: flex;
padding: 28px;
justify-content: center;
align-items: center;
flex: 1 0 0;  
}


/* Settings page */

.settings-card
{
border-radius: 12px;
background: var(--White, #FFF);
/* Block Shadow */
box-shadow: -2px 20px 50px -10px rgba(88, 92, 98, 0.12);
display: flex;
padding: 24px;
gap: 28px;
}

.calender-icon
{

border-radius: 8px;
border: 1px solid var(--Black-400, #D1D5DB);
background: var(--White, #FFF);
}

.event-type-button {
  display: flex;
  height: 48px;
  padding: 10px 14px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-radius: 8px;
  border: 1px solid var(--Black-400, #D1D5DB);
  background: var(--White, #FFF);
  cursor: pointer;
}

/* Pink hover on event-type tiles (matches brand). Use the compound
   .event-type-button.btn selector so it beats Bootstrap's .btn:hover, which
   would otherwise reset the border to transparent (making it look like the
   border disappears on hover). */
.event-type-button:hover,
.event-type-button.btn:hover,
.btn-check + .event-type-button.btn:hover {
  border-color: var(--Pink-500, #F6579C);
  background: var(--White, #FFF);
}

/* Event date field: pink the WHOLE input-group (input + calendar button) on focus,
   not just the left input. */
.input-group:focus-within .form-control,
.input-group:focus-within .calender-icon {
  border-color: var(--Pink-500, #F6579C);
}

/* Hide the checkmark by default */
.event-type-button .checkmark {
  display: none;
}

/* When radio is checked → style + show checkmark */
.btn-check:checked + .event-type-button {
  border-color: var(--Pink-500, #F6579C);
  background: var(--White, #FFF);
}

.btn-check:checked + .event-type-button .checkmark {
  display: inline;
}

.event-setup-description
{
border-radius: 8px;
background: #F5FDFD;
display: flex;
padding: 12px 16px;
justify-content: center;
align-items: center;
gap: 10px;
align-self: stretch;
}

.event-setup-toggler
{
border-radius: 50px;
border: 1px solid var(--Black-400, #D1D5DB);
background: var(--Black-200, #F3F4F6);
width: 45px;
height: 24px;
flex-shrink: 0;
}

.event-setup-card
{
border-radius: 8px;
border: 1px solid var(--Black-300, #E5E7EB);
display: flex;
padding: 20px 16px;
flex-direction: column;
align-items: flex-start;
gap: 16px;
flex: 1 0 0;
margin-bottom:15px;
}

/* Settings tabs (General / Event Setup / Guest Access & Permissions) */
.settings-tabs {
  display: flex;
  gap: 32px;
  border-bottom: 1px solid #e3e3e3;
}
.settings-tab {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 4px;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
}
.settings-tab .settings-tab-label {
  height: 43px;
  display: flex;
  align-items: center;
  color: var(--Black-700, #625F6D);
  font-size: 16px;
}
.settings-tab .settings-tab-bar {
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--Pink-500, #F6579C);
  opacity: 0;
}
.settings-tab.active .settings-tab-label {
  color: var(--Black-900, #353143);
  font-weight: 600;
}
.settings-tab.active .settings-tab-bar {
  opacity: 1;
}

/* ---- Settings: mobile optimizations ---- */
@media (max-width: 767.98px) {
  .settings-tabs {
    gap: 18px;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .settings-tabs::-webkit-scrollbar { display: none; }
  .settings-tab { flex: 0 0 auto; }
  .settings-tab .settings-tab-label { font-size: 15px; height: 40px; white-space: nowrap; }
  .settings-card { padding: 16px; gap: 18px; }
  .settings-card .row.g-3 > [class*="col-"] { margin-bottom: 2px; }
  .event-setup-card { padding: 16px 14px; }
  .settings-save-button { width: 100% !important; min-width: 0 !important; }
  .settings-radio { gap: 8px; }
  /* Permissions rows: label + toggle can crowd on small screens */
  .settings-panel[data-settings-panel="permissions"] .d-flex.align-items-center.gap-1 { flex-wrap: wrap; }
}

/* Custom radio (Guest Access & Permissions) */
.settings-radio {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.settings-radio input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  border-radius: 50%;
  border: 1px solid var(--Black-400, #D1D5DB);
  background: white;
  flex-shrink: 0;
  position: relative;
}
.settings-radio input[type="radio"]:checked {
  border-color: var(--Pink-500, #F6579C);
}
.settings-radio input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  background: var(--Pink-500, #F6579C);
}

/* Custom switch (Event Setup / Guest Access & Permissions) */
.settings-switch {
  display: inline-flex;
  cursor: pointer;
}
.settings-switch input {
  position: absolute;
  opacity: 0;
  width: 45px;
  height: 24px;
  margin: 0;
  cursor: pointer;
}
.settings-switch .settings-switch-track {
  width: 45px;
  height: 24px;
  border-radius: 50px;
  border: 1px solid var(--Black-400, #D1D5DB);
  background: var(--Black-200, #F3F4F6);
  position: relative;
  transition: background 0.15s, border-color 0.15s;
}
.settings-switch .settings-switch-track::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--Black-500, #A5A9B1);
  transition: left 0.15s, background 0.15s;
}
.settings-switch input:checked + .settings-switch-track {
  background: var(--Pink-500, #F6579C);
  border-color: var(--Pink-500, #F6579C);
}
.settings-switch input:checked + .settings-switch-track::after {
  left: 24px;
  background: white;
}

/* Upgrade-plan popup: Free vs Pro visual comparison */
.upgrade-gate-visual {
  position: relative;
  width: 220px;
  height: 220px;
  border-radius: 8px;
  overflow: hidden;
  background: #181818;
}

/* Custom-brand-tagline gate: dark slideshow-card mockups (Figma 12161:68448).
   Title on top, a centred photo, and — on the Plus/Pro card — the tagline. */
.ugt-wrap { display: inline-block; }
.ugt-card {
  box-sizing: border-box;
  position: relative;
  width: 280px;
  max-width: 74vw;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  background: #181818;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 22px 16px;
}
/* Face AI gate: the provided illustration (colour = Pro, greyed = Free). */
.ugt-imgcard {
  width: 260px;
  max-width: 74vw;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px -12px rgba(0,0,0,.25);
}
.ugt-imgcard img { width: 100%; height: auto; display: block; }
.ugt-imgcard img.ugt-off { filter: grayscale(1) opacity(.5); }

/* Generic light comparison card for the custom-link / QR-logo / content-filter gates. */
.ugc-card {
  box-sizing: border-box;
  width: 260px;
  max-width: 74vw;
  aspect-ratio: 1 / 1;
  border-radius: 14px;
  background: #f7f7fb;
  border: 1px solid #eef0f2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 20px;
  text-align: center;
}
/* custom event link */
.ugc-url {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: 10px 16px;
  font-size: 14px;
  color: #8a8794;
  font-family: 'Inter', sans-serif;
  word-break: break-all;
}
.ugc-card.pro .ugc-url { color: #f6579c; border-color: #f6579c; font-weight: 600; }
.ugc-note { font-size: 12.5px; color: #8a8794; }
.ugc-card.pro .ugc-note { color: #06a37a; }
/* QR-with-logo */
.ugc-qr {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 6px;
  border: 4px solid #fff;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
  overflow: hidden;
}
.ugc-qrcanvas { width: 120px; height: 120px; display: block; }
.ugc-qrlogo {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 38px; height: 38px;
  border-radius: 8px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.ugc-qrlogo img { width: 74%; height: 74%; object-fit: contain; }
/* content filter */
.ugc-cfimg { position: relative; width: 100%; border-radius: 10px; overflow: hidden; aspect-ratio: 4/3; }
.ugc-cfimg > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ugc-cfimg.blocked > img { filter: blur(6px) grayscale(.4); }
.ugc-cfimg .ugc-cf-tag {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(30,26,46,.82); color: #fff; font-size: 12px; font-weight: 600;
  border-radius: 999px; padding: 6px 12px; white-space: nowrap;
}
.ugc-cfimg.ok .ugc-cf-tag { background: rgba(6,163,122,.92); }
.ugc-cflabel { font-size: 13px; color: #4b4858; font-weight: 600; }

/* Clean "scan to add" chip (with a REAL mini QR) on the Free hide-QR card. */
.ugt-scan {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 34%;
  max-width: 96px;
  background: #fff;
  border-radius: 8px;
  padding: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.ugt-scan .ugc-qrcanvas { width: 100%; height: auto; display: block; border-radius: 3px; }
.ugt-scan b { font-size: 7.5px; line-height: 1.1; color: #1e1a2e; text-align: center; font-weight: 700; }
/* "Powered by Eventlens" footer on the Free remove-branding card. */
.ugt-brand {
  position: absolute;
  left: 0; right: 0; bottom: 10px;
  display: flex; align-items: center; justify-content: center; gap: 5px;
  color: #fff; font-size: 9px; opacity: .92;
}
.ugt-brand img { width: 11px; height: 11px; }
/* Play overlay on the recap-branding gate cards (signals it's a video). */
.ugt-play {
  position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%);
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.92); color: #1e1a2e;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.ugt-title {
  font-family: 'Boogaloo', cursive;
  color: #fff;
  font-size: 18px;
  line-height: 1;
  text-align: center;
}
/* "Recap video" badge on the recap-branding gate cards, so it's unmistakably the
   reel video (not the slideshow). */
.ugt-reel-badge {
  position: absolute; top: 8px; left: 8px; z-index: 2;
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(0,0,0,.62); color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: .02em;
  padding: 4px 8px; border-radius: 7px;
}
.ugt-reel-badge i { font-size: 11px; }
.ugt-tagline {
  color: var(--Black-100, #F9FAFB);
  font-family: 'Inter', sans-serif;
  font-size: 9px;
  line-height: 1.4;
  text-align: center;
  max-width: 200px;
  margin-top: -4px;
}
.ugt-photo {
  width: 70%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 2px;
  display: block;
}
/* Recap-branding gate: a portrait "reel" shape so it clearly reads as the recap
   video (a vertical reel), not the square slideshow tile. */
.ugt-card.recap { aspect-ratio: 3 / 4; }
.ugt-card.recap .ugt-photo { width: 74%; aspect-ratio: 3 / 5; border-radius: 10px; }
.upgrade-gate-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.upgrade-gate-caption {
  position: absolute;
  top: 14px;
  left: 0;
  right: 0;
  text-align: center;
  color: white;
  font-family: 'Boogaloo';
  font-size: 16px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.upgrade-gate-tagline {
  position: absolute;
  top: 38px;
  left: 12px;
  right: 12px;
  text-align: center;
  color: var(--Black-100, #F9FAFB);
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  line-height: 1.3;
}
.upgrade-gate-qr {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 2px;
  border: 3px solid white;
  background: repeating-conic-gradient(#181818 0% 25%, white 0% 50%) 0 0 / 10px 10px;
}
.upgrade-gate-badge {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 10px 16px;
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
}
.upgrade-gate-badge-uploaded {
  background: var(--Blue-200, #E7F9F9);
  border: 1px solid var(--Blue-500, #34CCCC);
  color: #109090;
}
.upgrade-gate-badge-approve {
  background: var(--Pink-500, #F6579C);
  color: white;
  box-shadow: 0 5px 10px rgba(225, 76, 150, 0.4);
}

.settings-info-icon {
  background: none;
  border: none;
  padding: 0;
  line-height: 0;
}

.voicemail-card
{
border-radius: 12px;
background: var(--White, #FFF);
/* Block Shadow */
box-shadow: -2px 20px 50px -10px rgba(88, 92, 98, 0.12);
display: flex;
padding: 24px 24px 32px 24px;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 16px;
align-self: stretch;
}

.voicemail-greeting-card
{
border-radius: 12px;
background: var(--White, #FFF);
/* Block Shadow */
box-shadow: -2px 20px 50px -10px rgba(88, 92, 98, 0.12);
padding: 24px 24px 32px 24px;
flex-direction: column;
justify-content: center;
gap: 16px;
align-self: stretch;
}



.voicemail-button-default-greeting
{
  display: flex;
height: 44px;
padding: 10px 18px;
justify-content: center;
align-items: center;
gap: 10px;
border-radius: 8px;
border: 1px solid var(--Pink-500, #F6579C);
background:white;
}

.voicemail-button-record-greeting
{
 display: flex;
width: 245px;
height: 44px;
padding: 10px 18px;
justify-content: center;
align-items: center;
gap: 10px;
border-radius: 8px;
background: var(--Pink-500, #F6579C);
color:white;
border:1px;   
}

.onboarding-modal
{
padding: 25px;
border-radius: 24px;
background: #FFF;
/* shadow/2xl */
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);  
}

.modal-content
{
    border:none !important;
}


.onboarding-modal-stepper .stepper {
  position: relative;
  gap: 2rem;
}

.onboarding-modal-stepper .step {
  position: relative;
  flex: 1 1 0;
  text-align: center;
  font-size: 0.9rem;
  color: var(--bs-secondary-color);
}

.onboarding-modal-stepper .step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 22px;
  left: calc(50% + 20px);
  right: -50%;
  height: 2px;
  background: var(--bs-border-color);
  border-radius: 2px;
  margin-left: 10px;
  margin-right:25px;
}

.onboarding-modal-stepper .step .circle {
  width: 36px;
  height: 36px;
  padding:12px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--bs-border-color);
  background: #fff;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

/* Active and Completed states */
.onboarding-modal-stepper .step.active .circle,
.onboarding-modal-stepper .step.completed .circle {
  background: #34CCCC;
  border-color: #34CCCC;
  color: #fff;
}

.onboarding-modal-stepper .step.completed {
  color: var(--bs-body-color);
}

.onboarding-modal-stepper .step.completed::after {
  background: var(--bs-teal);
}

/* Optional gradient transition for the active step line */
.onboarding-modal-stepper .step.active:not(.completed)::after {
  background: linear-gradient(to right, var(#34CCCC) 40%, var(#34CCCC) 60%);
}

.onboarding-modal-stepper .circle-wrapper {
  border: 2px solid #34CCCC;
  border-radius: 50%;
  padding: 3px; /* controls white gap */
  display: inline-block;
}
.onboarding-modal-stepper .circle {
  background: #34CCCC;
  color: #fff;
  border: none;
}


.onboarding-modal-next-button
{
display: flex;
width: 288px;
height: 48px;
padding: 12px 20px;
justify-content: center;
align-items: center;
gap: 12px;
flex-shrink: 0;
border:none;
border-radius: 8px;
background: var(--Pink-500, #F6579C);
color:white;
 
}
/* accessibility */
@media (prefers-reduced-motion: reduce){
  .bg-anim{ animation:none; }
}
.p-xl-6
{
    padding: 4.8rem !important;
}































/* Face AI */

.face-ai-card {
  position: relative;
  width: 205.6px;
  height: 205.6px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}

.face-ai-card-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* New Guests card: hover overlay with "Connect Guest" */
.face-ai-card-hover {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(30, 26, 46, 0);
  opacity: 0;
  transition: all .18s ease;
  pointer-events: none;
}

.face-ai-card:hover .face-ai-card-hover {
  background: rgba(30, 26, 46, 0.35);
  opacity: 1;
  pointer-events: auto;
}

.face-ai-assign-button {
  display: flex;
  height: 32px;
  padding: 8px 14px;
  justify-content: center;
  align-items: center;
  border-radius: 6px;
  border: none;
  background: var(--White, #FFF);
  color: var(--Black-900, #353143);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 12px;
}

/* Connected Guests card: bottom gradient + name + hover actions */
.face-ai-card-name-gradient {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 76px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  pointer-events: none;
}

.face-ai-card-name {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  max-width: 169px;
  color: var(--White, #FFF);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 16px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.face-ai-card-actions {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  gap: 4px;
  opacity: 0;
  transform: translateY(-4px);
  transition: all .18s ease;
  pointer-events: none;
  z-index: 4;
}

.face-ai-card:hover .face-ai-card-actions {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Empty state (two overlapping polaroid photos) */
.face-ai-empty-illustration {
  position: relative;
  width: 181px;
  height: 140px;
}

.face-ai-empty-photo {
  position: absolute;
  width: 105px;
  height: 104px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 6px 20px 0 rgba(30, 26, 46, 0.12);
}

.face-ai-empty-photo-1 {
  left: 76px;
  top: 36px;
}

.face-ai-empty-photo-2 {
  left: 0;
  top: 10px;
  transform: rotate(-6.91deg);
}

.face-ai-primary-button {
  display: inline-flex;
  height: 48px;
  padding: 12px 20px;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  border: none;
  background: var(--Pink-500, #F6579C);
  color: var(--White, #FFF);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 16px;
}

/* Signup: per-field validation errors */
.auth-field-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.auth-field-error-text {
  color: var(--red, #EC3C3F);
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  text-align: right;
}

.form-control.is-invalid {
  border-color: var(--red, #EC3C3F);
  background-image: none;
  padding-right: 14px;
}

.form-control.is-invalid:focus {
  border-color: var(--red, #EC3C3F);
  box-shadow: none;
}

/* Signup: mobile splash + bottom-sheet layout */
.auth-mobile-only {
  display: none;
}

@media (max-width: 991.98px) {
  .auth-mobile-only {
    display: block;
  }
}

.auth-mobile-bg {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  background: var(--Blue-200, #E7F9F9);
}

.signup-mobile-splash {
  position: relative;
  z-index: 3;
  min-height: 100vh;
  padding: 68px 24px 40px;
  cursor: pointer;
}

.signup-mobile-splash-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.auth-mobile-sheet {
  position: relative;
  z-index: 3;
  background: var(--White, #FFF);
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05);
  padding: 32px 20px 40px;
  min-height: 100vh;
}

/* Mobile signup value prop (parity with the desktop hero panel, compact so the
   form stays near the top): value-prop headline + trust bar + a rotating USP. */
.signup-mobile-trust .rating-stars { gap: 4px; }
.signup-mobile-trust .star-box {
  width: 20px; height: 20px;
  font-size: 12px;
  border-radius: 5px;
}

/* Rotating USP: shows one benefit at a time, cycles every 3s. One line tall so
   it stays compact; items cross-fade + slide. */
.signup-mobile-usp { position: relative; height: 24px; cursor: pointer; }
.signup-mobile-usp .usp-item {
  position: absolute; inset: 0;
  display: flex; align-items: center; gap: 8px;
  opacity: 0; transform: translateY(6px);
  transition: opacity .45s ease, transform .45s ease;
  pointer-events: none;
}
.signup-mobile-usp .usp-item.is-active { opacity: 1; transform: none; }
.signup-mobile-usp .badge-check { flex: 0 0 18px; width: 18px; height: 18px; }
.signup-mobile-usp .usp-text {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (prefers-reduced-motion: reduce) {
  .signup-mobile-usp .usp-item { transition: opacity .01ms; transform: none; }
}

/* Login: rotated photo-collage hero panel (desktop) */
.login-collage-wrap {
  position: relative;
  overflow: hidden;
  background: var(--Blue-200, #E7F9F9);
  height: 96%;
  border-radius: 20px;
}

/* Diagonal, staggered event-photo collage (matches Figma "Content block 2").
   A tilted (+15deg, clockwise) grid of columns; alternate columns are shifted
   up so the tiles interlock into a brick/diagonal mosaic. The grid is oversized
   and centred so its ragged edges fall outside the panel. */
.login-collage-grid {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  gap: 12px;
  transform: translate(-50%, -50%) rotate(15deg) scale(1.3);
  transform-origin: center center;
  /* Softens the photos against the mint background, matching Figma (the
     photo grid sits at 80% opacity so the tint bleeds through). */
  opacity: 0.8;
}

.login-collage-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 132px;
  flex: 0 0 132px;
}

/* Brick stagger: nudge every other column up by ~half a tile. */
.login-collage-col:nth-child(even) {
  transform: translateY(-64px);
}

.login-collage-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 260 / 224;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0px 4px 8px 0px rgba(255, 255, 255, 0.2);
}

/* Form error banner (showErrors() helper) — on-brand styling instead of
   plain Bootstrap red, used for auth errors that are intentionally not
   tied to one specific field (e.g. "invalid email or password"). */
.alert.alert-danger {
  background: #FEECEC;
  border: 1px solid var(--red, #EC3C3F);
  color: var(--red, #EC3C3F);
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  padding: 14px 16px;
}

.alert.alert-danger strong {
  font-weight: 600;
  color: var(--Black-1000, #1E1A2E);
}

.alert.alert-danger ul {
  margin: 4px 0 0;
  padding-left: 20px;
}

.alert.alert-danger li {
  margin-top: 2px;
}


/* =====================================================================
   MOBILE MENU (host offcanvas sidebar) — professional polish
   ===================================================================== */

/* Top bar shown on mobile only */
.el-mobile-navbar {
  padding: 10px 12px;
  box-shadow: 0 1px 0 rgba(30, 26, 46, 0.06), 0 4px 12px rgba(30, 26, 46, 0.04);
  position: sticky;
  top: 0;
  z-index: 1030;
}

/* Branded hamburger button (replaces the plain Bootstrap outline button) */
.el-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid var(--Black-200, #F3F4F6);
  background: var(--Pink-100, #FEF1F7);
  color: var(--Pink-600, #EC3C88);
  font-size: 22px;
  line-height: 1;
  transition: background-color .15s ease, border-color .15s ease;
}
.el-menu-toggle:hover,
.el-menu-toggle:focus-visible {
  background: #FDE3EF;
  border-color: var(--Pink-500, #F6579C);
  outline: none;
}
.el-menu-toggle:active {
  transform: scale(0.96);
}
/* Keeps the wordmark visually centred between toggle and right edge */
.el-menu-toggle-spacer {
  width: 44px;
  height: 1px;
}
.el-mobile-navbar .navbar-brand img {
  display: block;
}

/* Offcanvas panel */
.el-mobile-sidebar {
  width: min(320px, 86vw);
  border-right: none;
  box-shadow: 0 10px 40px rgba(30, 26, 46, 0.18);
}
.el-mobile-sidebar .offcanvas-header {
  padding: 16px 18px;
  border-bottom: 1px solid var(--Black-200, #F3F4F6);
}
.el-mobile-sidebar .offcanvas-header .btn-close {
  padding: 10px;
  border-radius: 10px;
  opacity: 0.6;
}
.el-mobile-sidebar .offcanvas-header .btn-close:hover {
  opacity: 1;
}
.el-mobile-sidebar .offcanvas-body {
  padding: 16px 14px 22px;
  overflow-y: auto;
}

/* The mobile menu is cloned from the fixed-width 300px desktop sidebar, so
   every hard-coded pixel width has to be relaxed to fill the panel fluidly. */
#sidebarContentMobile,
#sidebarContentMobile .dropdown,
#sidebarContentMobile .left-menu-item,
#sidebarContentMobile .left-menu-plan-details,
#sidebarContentMobile .upgrade-plan-button,
#sidebarContentMobile .menu-divider-top,
#sidebarContentMobile .menu-divider-bottom,
#sidebarContentMobile .left-menu-hr {
  width: 100% !important;
}
#sidebarContentMobile .left-menu-item {
  height: auto;
  min-height: 46px;
  margin-bottom: 2px;
}
/* Larger, easier tap target for the active item on touch screens */
#sidebarContentMobile .left-menu-item.active {
  background: var(--Pink-100, #FEF1F7);
}
#sidebarContentMobile .upgrade-plan-button {
  width: 100% !important;
}
/* The offcanvas has its own header logo, so drop the duplicated cloned one */
#sidebarContentMobile > .mb-4:first-child {
  display: none;
}
/* Tighten the top spacing now that the logo block is hidden */
#sidebarContentMobile .nav.flex-column {
  margin-bottom: 0.5rem !important;
}


/* =====================================================================
   ONBOARDING MODAL — mobile optimisation
   ===================================================================== */
@media (max-width: 575.98px) {
  .onboarding-modal {
    padding: 16px;
    border-radius: 18px;
  }
  .onboarding-modal .modal-body {
    padding: 6px;
  }
  /* The stepper's inner .container adds Bootstrap gutters we don't want here */
  .onboarding-modal-stepper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .onboarding-modal .container.my-4 {
    padding-left: 0;
    padding-right: 0;
    margin-top: 0.5rem !important;
    margin-bottom: 1rem !important;
  }

  /* Compact 4-step stepper so labels + connectors fit narrow screens */
  .onboarding-modal-stepper .step .circle {
    width: 30px;
    height: 30px;
    padding: 8px;
    font-size: 13px;
  }
  .onboarding-modal-stepper .circle-wrapper {
    padding: 2px;
  }
  .onboarding-modal-stepper .step .label {
    font-size: 10px;
    line-height: 1.2;
    margin-top: 6px !important;
  }
  .onboarding-modal-stepper .step:not(:last-child)::after {
    top: 17px;
    left: calc(50% + 16px);
    right: -50%;
    margin-left: 4px;
    margin-right: 12px;
  }

  /* Headings + copy scale down a touch */
  .onboarding-modal h5.boogalo-3xl {
    font-size: 1.25rem;
  }

  /* Primary / secondary action buttons go full width and stack neatly */
  .onboarding-modal-next-button {
    width: 100%;
  }
  .onboarding-modal .white-outline-button-plain {
    width: 100%;
  }
  /* The button rows use justify-content-end + gap; make them stack on mobile */
  .onboarding-modal .d-flex.justify-content-end {
    flex-direction: column-reverse;
    align-items: stretch !important;
  }
  /* Step 1's lone "Next" button keeps its float on desktop; neutralise on mobile */
  #step1 .onboarding-modal-next-button.float-end {
    float: none !important;
    margin-top: 1.5rem !important;
  }

  /* Event-type tiles: 2-up grid reads better than full-width stacked */
  .event-type-button {
    padding: 10px;
    font-size: 14px;
  }

  /* Plan cards spacing in the final step */
  .onboarding-modal .plan-card,
  .onboarding-modal .plan-card-active {
    padding: 4px;
  }
}
