:root {
  --bulma-navbar-height: 2.875rem;
  --bulma-warning-light-l: var(--bulma-warning-95-l);
  --bulma-label-weight: var(--bulma-weight-normal);
  --main-color: #009E86;
  --main-bg-color: #cbf4ed;
  --gradient-teal-light: linear-gradient(90deg, rgba(102, 196, 182, 1) 0%, rgba(153, 216, 206, 1) 60%, rgba(204, 235, 230, 1) 100%);
  --gradient-teal-t7: linear-gradient(90deg, rgba(178, 225, 218, 1) 0%, rgba(204, 235, 230, 1) 60%, rgba(232, 246, 244, 1) 100%);
  --gradient-bg-teal-light: linear-gradient(90deg,rgba(240, 249, 247, 1) 0%, rgba(248, 252, 251, 1) 60%, rgba(254, 254, 254, 1) 100%);
  --gradient-bg-teal-medium: linear-gradient(90deg,rgba(230, 245, 242, 1) 0%, rgba(240, 249, 247, 1) 60%, rgba(254, 254, 254, 1) 100%);
  --gradient-bg-coral-light: linear-gradient(90deg,rgba(255, 138, 101, 1) 0%, rgba(255, 204, 188, 1) 60%, rgba(255, 243, 224, 1) 100%);
  --sidebar-width: 12.5rem;

  /* Teal Monochromatic */
  --teal-darkest: #004D43;
  --teal-dark: #006B5E;
  --teal-primary: #009E86;
  --teal-medium: #33B199;
  --teal-light: #66C4AD;
  --teal-lightest: #99D7C0;

  /* Coral Accents */
  --coral-dark: #E55722;
  --coral-primary: #FF7043;
  --coral-light: #FF8A65;
  --coral-lightest: #FFCCBC;

  /* Background Tints */
  --bg-teal-subtle: #F8FCFB;
  --bg-teal-light: #F0F9F7;
  --bg-teal-medium: #E6F5F2;
  --bg-coral-subtle: #FFF8F5;
  --bg-coral-light: #FFF3E0;

  /* Other colors */
  --red-primary: #CC0029;

  /* for features section */
  --primary-color: #009E86;
  --primary-hover: #007d6b;
  --primary-light: #e6f7f4;

  /* Shades and tints*/
  --teal-t7: #B2E1DA;
}


* {
  outline: none;
}

html,
body {
  height: 100%;
  width: 100%;
  color: #222;
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
  font-family: 'Roboto', sans-serif;
  scroll-behavior: smooth;
}

template {
  display: none;
}

dialog[open] {
  position: fixed;
  margin: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translate3d(0, 0, 0);
  /* centered with draggable offset (0,0) */
}

dialog>form>header[data-dialog-draggable] {
  cursor: move;
  user-select: none;
}

dialog>form>header[data-dialog-draggable]:active {
  cursor: move;
}

.dlg-min-width {
  min-width: 20rem;
}

.dlg-main-min-height {
  min-height: 5rem;
}

/* Style dialog header button to match delete button */
.dlg-header-button {
  appearance: none;
  background-color: #F1F1F1;
  border: none;
  border-radius: 9999px;
  cursor: pointer;
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-grow: 0;
  flex-shrink: 0;
  height: 20px;
  max-height: 20px;
  max-width: 20px;
  min-height: 20px;
  min-width: 20px;
  outline: none;
  position: relative;
  vertical-align: top;
  width: 20px;
  margin-right: 0.5rem;
  color: black;
  font-size: 16px;
  text-align: center;
  font-weight: bolder;
}

.dlg-header-button:hover,
.dlg-header-button:focus {
  background-color: #E1E1E1;
}

.dlg-header-button:active {
  background-color: #D1D1D1;
}

.minimize-button::before {
  background-color: black;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  height: 3px;
  width: 50%;
}

/* Restore button with pseudo element - square with thick top border */
.restore-button::before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 50%;
  height: 50%;
  border: 1px solid black;
  border-top: 3px solid black;
  box-sizing: border-box;
}

.content-title-min-width {
  min-width: 11.25rem;
}

.hero {
  position: relative;
  background: linear-gradient(45deg, #434343 0%, #009E86 100%);
  /* angle (135deg) */
}

.home>header {
  height: 0;
}

.trademark {
  font-size: 3rem;
  letter-spacing: -0.02em;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  background: linear-gradient(135deg, #ffffff 0%, #e8f4f3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: fadeInUp 1s ease-out;
}

.tagline {
  font-size: 1.5rem;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  animation: fadeInUp 1s ease-out 0.2s both;
}

.description {
  font-size: 1.2rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.9);
  max-width: 800px;
  margin-left: 1rem;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
  animation: fadeInUp 1s ease-out 0.4s both;
}

.description strong {
  color: #ffffff;
  font-weight: bold;
}

.cta {
  font-size: 1.3rem;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  letter-spacing: 0.5px;
  animation: fadeInUp 1s ease-out 0.6s both;
}

.floating-elements {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

.floating-circle {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  animation: float 6s ease-in-out infinite;
}

.circle-1 {
  width: 80px;
  height: 80px;
  top: 20%;
  left: 10%;
  animation-delay: 0s;
}

.circle-2 {
  width: 120px;
  height: 120px;
  top: 60%;
  right: 15%;
  animation-delay: 2s;
}

.circle-3 {
  width: 60px;
  height: 60px;
  bottom: 30%;
  left: 20%;
  animation-delay: 4s;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes float {

  0%,
  100% {
    transform: translateY(0px) rotate(0deg);
  }

  33% {
    transform: translateY(-20px) rotate(120deg);
  }

  66% {
    transform: translateY(10px) rotate(240deg);
  }
}

/* Responsive Design */
@media (max-width: 768px) {
  .hero {
    padding: 1rem;
  }

  .trademark {
    font-size: 2.5rem;
  }

  .tagline {
    font-size: 1.4rem;
  }

  .description {
    font-size: 1.1rem;
    margin-bottom: 2rem;
  }

  .cta {
    font-size: 1.1rem;
  }
}

@media (max-width: 480px) {
  .trademark {
    font-size: 2rem;
  }

  .tagline {
    font-size: 1.2rem;
    margin-bottom: 1.5rem;
  }

  .description {
    font-size: 1rem;
  }
}

/* Landing page - Badge */  

.pre-release-badge {
    position: absolute;
    top: 25px;
    right: 50px;    
    background: linear-gradient(135deg, #FFD740, #FFD54F, #FFE57F); 
    background: linear-gradient(135deg, #FFEB3B, #FFF176, #FFF9C4);
    color: #004C3F; /* dark teal text for contrast */
    padding: 8px 20px 10px;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 1.5px;    
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
    /* Perfect centering and typography */
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    font-family: 'Playfair Display', serif;
    line-height: 1;
    border: 1px solid rgba(255, 255, 255, 0.2); /* Subtle metallic border */
    /* Subtle animation */
    transition: all 0.3s ease;
}

/* Enhanced hover effect */
.pre-release-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(239, 206, 100, 0.5);
    background: linear-gradient(135deg, #FFF176, #FFF9C4, #FFFDE7);
}

/* Responsive scaling */
@media (max-width: 768px) {
  .pre-release-badge {
    font-size: 1rem;
    padding: 6px 18px 8px;
  }
}

@media (max-width: 480px) {
  .pre-release-badge {
    font-size: 0.75rem;
    padding: 4px 12px 6px;
  }
}


/* Landing page - Features section */

.features-section {
  padding: 1.5rem 1.5rem 2.5rem;
  background-color: #f8f9fa;
}

.section-title {
  text-align: center;
  font-size: 2.3rem;
  font-family: Verdana, Arial, Helvetica, sans-serif;
  color: #363636;
  margin-bottom: 1.5rem;
}

.feature-card {
  background: white;
  border-radius: 12px;
  padding: 2.5rem;
  height: 100%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border: 2px solid transparent;
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--primary-color), #00c4a7);
  transform: scaleX(0);
  transition: transform 0.4s ease;
}

.feature-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 12px 24px rgba(0, 158, 134, 0.15);
  border-color: var(--primary-color);
}

.feature-card:hover::before {
  transform: scaleX(1);
}

.feature-header {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
  gap: 1.25rem;
}

.feature-icon {
  width: 60px;
  height: 60px;
  min-width: 60px;
  background: linear-gradient(135deg, var(--primary-color), #00c4a7);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s ease;
}

.feature-card:hover .feature-icon {
  transform: scale(1.1) rotate(5deg);
}

.feature-icon i {
  font-size: 2rem;
  color: white;
}

.feature-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #363636;
  margin: 0;
  transition: color 0.3s ease;
}

.feature-card:hover .feature-title {
  color: var(--primary-color);
}

.feature-description {
  color: #6b6b6b;
  line-height: 1.7;
  font-size: 1rem;
}

@media screen and (max-width: 768px) {
  .section-title {
    font-size: 1.5rem;
  }  
}

@media screen and (max-width: 480px) {
  .section-title {
    font-size: 1.3rem;
  }  
}


/* ------  Get Started section ----- */

.get-started-section {
  background: linear-gradient(135deg, #f8fafb 0%, #e8f5f3 100%);
  padding: 1.5rem 1.5rem 6rem;
}

.get-started-title {
  font-size: 2.3rem;
}

.get-started-subtitle {
  font-size: 1.25rem;
  color: #565656;
  max-width: 600px;
  margin: 0 auto 2.5rem !important;
  line-height: 1.6;
}

.cta-button {
  background: #009E86;
  background: linear-gradient(135deg, var(--primary-color), #00c4a7);
  border-color: #009E86;
  color: white;
  font-size: 1.40rem;
  padding: 1.125rem 2.5rem;
  height: auto;
  font-weight: 600;
  box-shadow: 0 8px 20px rgba(0, 158, 134, 0.3);
  transition: all 0.3s ease;
}

.cta-button:hover {
  background-color: #008070;
  border-color: #008070;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 158, 134, 0.4);
}

.cta-button .icon {
  margin-left: 0.5rem;
}

@media screen and (max-width: 768px) {
  .get-started-section {
    padding: 1.5rem 1.5rem 4rem;
  }

  .get-started-title {
    font-size: 1.5rem;
  }

  .get-started-subtitle {
    font-size: 1.125rem;
    margin: 0 auto 2rem;
  }

  .cta-button {
    font-size: 1rem;
    padding: 1rem 2rem;  
  }
}

@media screen and (max-width: 480px) {
  .get-started-title {
    font-size: 1.35rem;
  }

  .get-started-subtitle {
    font-size: 1rem;
    margin: 0 auto 1.5rem;
  }  
}

.warning-container {
  background: var(--bg-coral-light);
  padding: 1rem 0 1rem;
  width: 100%;
}

.warning-container h2 {
  margin-bottom: 0.75rem;
}

.warning-container p {
  max-width: 600px;
  margin: 0 auto 1rem;
}

/* Hide warning on larger screens */
@media (min-width: 768px) {
  .warning-container {
    display: none;
  }
}

/* Pointer-events : none  on small screens */

/* Styles for screens smaller than 768px (e.g., phones) */
@media (max-width: 767px) {
  .feature-card {
    pointer-events: none;
  }
  .cta-button {
    pointer-events: none;
  }
}

/* ---------- APP LAYOUT ---------- */

/* App wrapper */
.app {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

/* Fixed header */
.app>header {  
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10; 
}

.app>header {
  transition: box-shadow 0.3s ease;
}

body.scrolled .app>header {
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

/* Layout wrapper */
.layout {
  display: flex;
  flex: 1;
  padding-top: var(--bulma-navbar-height); 
}

/* Sticky sidebar */
.layout>aside {
  position: sticky;
  top: var(--bulma-navbar-height);
  align-self: flex-start;
  width: var(--sidebar-width);
  height: calc(100vh - var(--bulma-navbar-height));
  overflow-y: auto;
  background-color: #FFF;  
}

/* Main content */
.layout>main {
  flex: 1;
  padding: 12px 18px;
  background-color: #F1F1F1;
}

 /* Sticky column inside main */
 .sticky-box {
   position: sticky;
   top: calc(12px + var(--bulma-navbar-height));
 }

/* Responsive stacking */
@media (max-width: 768px) {
  .layout {
    flex-direction: column;
  }

  .layout>aside {
    position: static;
    width: 100%;
    height: auto;
  }

  .columns {
    flex-direction: column;
  }

  .sticky-box {
    position: static;
  }
}

/* -----------------------  */

.hide,
.display-none {
  display: none !important;
}

.pointer-events-none {
  pointer-events: none;
}

.cursor-move {
  cursor: move;
}

.cursor-pointer {
  cursor: pointer;
}

.is-relative {
  position: relative !important;
}

.is-absolute {
  position: absolute !important;
}


.menu {
  list-style-type: none;
  margin: 0;
  padding: 0.2rem 0 0;
  width: 12.5rem;
  /* position: sticky;
  top: var(--bulma-navbar-height); */
}

.menu li a {
  display: block;
  color: #000;
  padding: 0.4rem 0.8rem;
  margin: 0rem 0.145rem;
  border-radius: 6px;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
}

.menu li a.active {
  background: var(--teal-t7);
  background: var(--gradient-teal-t7);
}

.menu li a:not(.active):hover {
  background-color: #F1F1F1;
}

.menu li a i {
  margin-right: 6px;
}

.menu li[data-li^="title-"] a {
  font-weight: bold;
  color: #009E86;
  padding-left: 0.75rem;
  padding-bottom: 0;
  pointer-events: none;
}

.navbar-item {
  margin: 0.125rem 0;
  border-radius: 6px;
  user-select: none;
}

.navbar-item.active {
  background: var(--teal-t7);
  background: var(--gradient-teal-t7);
}

.navbar-item[data-name="logo"] {
  pointer-events: none;
}

.content.paragraph-mb-1 p {
  margin-bottom: 0.25rem;
}

.content.paragraph-mb-2 p {
  margin-bottom: 0.50rem;
}

.content.paragraph-mb-3 p {
  margin-bottom: 0.75rem;
}

/* Pane fork of Message */

.pane {
  --bulma-message-border-l-delta: -20%;
  --bulma-message-radius: var(--bulma-radius);
  --bulma-message-header-weight: var(--bulma-weight-semibold);
  --bulma-message-header-padding: 1em 1.25em;
  --bulma-message-header-radius: var(--bulma-radius);
  --bulma-message-body-border-width: 0 0 0 4px;
  --bulma-message-body-color: var(--bulma-text);
  --bulma-message-body-padding: 1.25em 1.5em;
  --bulma-message-body-radius: var(--bulma-radius-small);
  --bulma-message-body-pre-code-background-color: transparent;
  --bulma-message-header-body-border-width: 0;
  --bulma-message-h: var(--bulma-scheme-h);
  --bulma-message-s: var(--bulma-scheme-s);
  --bulma-message-background-l: var(--bulma-background-l);
  --bulma-message-border-l: var(--bulma-border-l);
  --bulma-message-border-style: solid;
  --bulma-message-border-width: 0.25em;
  --bulma-message-color-l: var(--bulma-text-l);
  --bulma-message-header-background-l: var(--bulma-dark-l);
  --bulma-message-header-color-l: var(--bulma-text-dark-invert-l);
}

.pane {
  border-radius: var(--bulma-message-radius);
  color: hsl(var(--bulma-message-h), var(--bulma-message-s), var(--bulma-message-color-l));
  font-size: var(--bulma-size-normal);
}

.pane a:not(.button):not(.tag):not(.dropdown-item) {
  color: currentColor;
  /* text-decoration: underline; */
}

.pane.is-white {
  --bulma-message-h: var(--bulma-white-h);
  --bulma-message-s: var(--bulma-white-s);
  --bulma-message-border-l: calc(var(--bulma-white-l) + var(--bulma-message-border-l-delta));
  --bulma-message-color-l: var(--bulma-white-on-scheme-l);
  --bulma-message-header-background-l: var(--bulma-white-l);
  --bulma-message-header-color-l: var(--bulma-white-invert-l);
}

.pane.is-light {
  --bulma-message-h: var(--bulma-light-h);
  --bulma-message-s: var(--bulma-light-s);
  --bulma-message-border-l: calc(var(--bulma-light-l) + var(--bulma-message-border-l-delta));
  --bulma-message-color-l: var(--bulma-light-on-scheme-l);
  --bulma-message-header-background-l: var(--bulma-light-l);
  --bulma-message-header-color-l: var(--bulma-light-invert-l);
}

.pane.is-dark {
  --bulma-message-h: var(--bulma-dark-h);
  --bulma-message-s: var(--bulma-dark-s);
  --bulma-message-border-l: calc(var(--bulma-dark-l) + var(--bulma-message-border-l-delta));
  --bulma-message-color-l: var(--bulma-dark-on-scheme-l);
  --bulma-message-header-background-l: var(--bulma-dark-l);
  --bulma-message-header-color-l: var(--bulma-dark-invert-l);
}

.pane.has-border>.pane-header {
  border: thin solid #E1E1E1;
  border-bottom: thin solid #F1F1F1;
}

.pane.has-border>.pane-body {
  border: thin solid #E1E1E1;
  border-top: unset;
}

.pane-header {
  align-items: center;
  background-color: hsl(var(--bulma-message-h), var(--bulma-message-s), var(--bulma-message-header-background-l));
  border-start-start-radius: var(--bulma-message-header-radius);
  border-start-end-radius: var(--bulma-message-header-radius);
  color: hsl(var(--bulma-message-h), var(--bulma-message-s), var(--bulma-message-header-color-l));
  display: flex;
  font-weight: var(--bulma-message-header-weight);
  justify-content: space-between;
  line-height: 1.25;
  padding: var(--bulma-message-header-padding);
  position: relative;
  /* new */
  border-bottom: thin solid #F1F1F1;
  border-top-left-radius: 0.188rem;
  border-top-right-radius: 0.188rem;
  padding-bottom: .55rem;
  padding-top: .55rem;
}

.pane-header .delete {
  flex-grow: 0;
  flex-shrink: 0;
  margin-inline-start: 0.75em;
}

.pane-header+.pane-body {
  border-width: var(--bulma-message-header-body-border-width);
  border-start-start-radius: 0;
  border-start-end-radius: 0;
}

.pane-body {
  background-color: hsl(var(--bulma-message-h), var(--bulma-message-s), var(--bulma-message-background-l));
  border-inline-start-color: hsl(var(--bulma-message-h), var(--bulma-message-s), var(--bulma-message-border-l));
  border-inline-start-style: var(--bulma-message-border-style);
  border-inline-start-width: var(--bulma-message-border-width);
  border-radius: var(--bulma-message-body-radius);
  padding: var(--bulma-message-body-padding);
  /* new */
  border-bottom-left-radius: 0.188rem;
  border-bottom-right-radius: 0.188rem;
  background-color: #FFF;
}

.pane-title {
  /* new */
  font-size: 1.2rem;
  font-family: 'Playfair Display', serif;
  font-weight: bold;
  color: var(--main-color);
}

/* Override Bulma's primary color with #33B199 */
.button.is-primary {
  background-color: #33B199;
  border-color: transparent;
  color: #fff;
  /* Hack to ensure same button height*/
  padding-top: 7.8px;
  padding-bottom: 7.8px;
}

.button.is-primary:hover,
.button.is-primary.is-hovered {
  background-color: #2da089;
  border-color: transparent;
  color: #fff;
}

.button.is-primary:focus,
.button.is-primary.is-focused {
  border-color: transparent;
  color: #fff;
}

.button.is-primary:focus:not(:active),
.button.is-primary.is-focused:not(:active) {
  box-shadow: 0 0 0 0.125em rgba(51, 177, 153, 0.25);
}

.button.is-primary:active,
.button.is-primary.is-active {
  background-color: #288f79;
  border-color: transparent;
  color: #fff;
}

.button.is-primary[disabled],
fieldset[disabled] .button.is-primary {
  background-color: #33B199;
  border-color: transparent;
  box-shadow: none;
}

.button.is-primary.is-inverted {
  background-color: #fff;
  color: #33B199;
}

.button.is-primary.is-inverted:hover,
.button.is-primary.is-inverted.is-hovered {
  background-color: #f2f2f2;
}

.button.is-primary.is-inverted[disabled],
fieldset[disabled] .button.is-primary.is-inverted {
  background-color: #fff;
  border-color: transparent;
  box-shadow: none;
  color: #33B199;
}

.button.is-primary.is-loading::after {
  border-color: transparent transparent #fff #fff !important;
}

.button.is-primary.is-outlined {
  background-color: transparent;
  border-color: #33B199;
  color: #33B199;
}

.button.is-primary.is-outlined:hover,
.button.is-primary.is-outlined.is-hovered,
.button.is-primary.is-outlined:focus,
.button.is-primary.is-outlined.is-focused {
  background-color: #33B199;
  border-color: #33B199;
  color: #fff;
}

.button.is-primary.is-outlined.is-loading::after {
  border-color: transparent transparent #33B199 #33B199 !important;
}

.button.is-primary.is-outlined.is-loading:hover::after,
.button.is-primary.is-outlined.is-loading.is-hovered::after,
.button.is-primary.is-outlined.is-loading:focus::after,
.button.is-primary.is-outlined.is-loading.is-focused::after {
  border-color: transparent transparent #fff #fff !important;
}

.button.is-primary.is-outlined[disabled],
fieldset[disabled] .button.is-primary.is-outlined {
  background-color: transparent;
  border-color: #33B199;
  box-shadow: none;
  color: #33B199;
}

.button.is-primary.is-inverted.is-outlined {
  background-color: transparent;
  border-color: #fff;
  color: #fff;
}

.button.is-primary.is-inverted.is-outlined:hover,
.button.is-primary.is-inverted.is-outlined.is-hovered,
.button.is-primary.is-inverted.is-outlined:focus,
.button.is-primary.is-inverted.is-outlined.is-focused {
  background-color: #fff;
  color: #33B199;
}

.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,
.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,
.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,
.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after {
  border-color: transparent transparent #33B199 #33B199 !important;
}

.button.is-primary.is-inverted.is-outlined[disabled],
fieldset[disabled] .button.is-primary.is-inverted.is-outlined {
  background-color: transparent;
  border-color: #fff;
  box-shadow: none;
  color: #fff;
}

.button.is-primary.is-light {
  background-color: #e8f7f4;
  color: #1a6b5c;
}

.button.is-primary.is-light:hover,
.button.is-primary.is-light.is-hovered {
  background-color: #ddf4ef;
  border-color: transparent;
  color: #1a6b5c;
}

.button.is-primary.is-light:active,
.button.is-primary.is-light.is-active {
  background-color: #d2f1ea;
  border-color: transparent;
  color: #1a6b5c;
}

/* end of button override */

.label {
  /* new */
  font-weight: var(--bulma-label-weight);
}

.column.is-main {
  flex: none;
  width: 75%;
  max-width: 900px;
}

.column.is-aside {
  max-width: 400px;
}

.tabs.has-active-green li.is-active a {
  color: var(--main-color) !important;
}

.white-smoke {
  color: #f5f5f5;
}

.red {
  color: var(--red-primary);
}

.green {
  color: #48c78e;
}

.teal {
  color:var(--teal-primary);
}

.teal-dark {
  color: var(--teal-dark);
}

.coral {
  color: var(--coral-primary);
}

.coral-dark {
  color: var(--coral-dark);
}

.grey-5f {
  color: #5F5F5F;
}

.grey-7f {
  color: #7F7F7F;
}

.grey-9f {
  color: #9F9F9F;
}

/* short for .has-text-grey */
.grey {
  color: hsl(221, 14%, 48%) !important;
}

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

.hover-coral:hover{
  color: var(--coral-dark) !important;
}

.bg-grey-f1 {
  background-color: #f1f1f1;
}

.bg-grey-f3 {
  background-color: #f3f3f3;
}

.bg-grey-f5 {
  background-color: #f5f5f5;
}

.bg-grey-f7 {
  background-color: #f7f7f7;
}

.bg-grey-f9 {
  background-color: #f9f9f9;
}

.bg-grey-fd {
  background-color: #fdfdfd;
}

.bg-teal-subtle {
  background-color: var(--bg-teal-subtle);
}

.bg-teal-light {
  background-color: var(--bg-teal-light);
}

.bg-grey-light {
  background-color: var(--bulma-grey-light);
}

.bg-white-azureish {
  background-color: #D6EAE7;
}

.bg-blue-jordy {
  background-color: #8eb0e7;
}

/* #66C4B6 #99D8CE #CCEBE6 */
.gradient-teal-light {
  background: #66C4B6;
  background: var(--gradient-teal-light);
}

.bg-gradient-teal-light {
  background: var(--bg-teal-light);
  background: var(--gradient-bg-teal-light);
}

.bg-gradient-teal-t7 {
  background: var(--teal-t7);
  background: var(--gradient-teal-t7);
}

.message {
  --bulma-message-border-width: 0.15em;
}

.message-title {
  /* adding */
  font-size: 1.1rem;
  font-family: serif;
}

.delete {
  /* adding */
  background-color: #F1F1F1;
  --bulma-delete-color: hsl(0deg 8.22% 21.68%);
}

.delete:hover {
  background-color: #E1E1E1;
}

select.is-danger {
  /* new */
  border-color: rgb(255, 102, 133);
}

.is-bold-checked label:has(input[type="radio"]:checked) {
  font-weight: bold;
}

.control.is-fullwidth {
  width: 100%;
}

.field.is-fullwidth {
  width: 100%;
}

.table td,
.table th {
  /* padding: 0;   */
  vertical-align: middle;
  /* line-height: normal; */
}

.table {
  --bulma-table-row-active-background-color: var(--bulma-primary-light);
}

.table tr.is-selected td,
.table tr.is-selected th {
  border-color: var(--bulma-table-cell-border-color);
}

table.is-width-auto {
  width: auto;
}

table.is-fullwidth {
  width: 100%;
}

table.is-last-col-fullwidth td:not(:last-child) {
  white-space: nowrap;
}

table.is-last-col-fullwidth td:last-child {
  width: 100%;
}

table.cells-p-0 th,
table.cells-p-0 td {
  padding: 0;
}

table.th-unbold th {
  font-weight: normal;
}

table.th-underline th {
  text-decoration: underline;
}

table.th-bdr-t-thin tr th {
  border-top-width: thin !important;
}

table.th-bdr-b-thin tr th {
  border-bottom-width: thin !important;
}

table.th-bg-teal-medium tr th {
  background-color: var(--teal-medium);
  color: #FFF;
}

table.td-last-bdr-b-thin tr:last-child td {
  border-bottom-width: thin !important;
}

table.cells-pl th:not(:first-child):not(:last-child),
table.cells-pl td:not(:first-child):not(:last-child) {
  padding-left: 0.375rem;
}

table.cells-pl th:last-child,
table.cells-pl td:last-child {
  padding-left: 0.75rem;
}

.table.is-bdr-b-dotted td {
  border-bottom-style: dotted;
}

.table.is-striped.bg-teal-t9 tbody tr:not(.is-selected):nth-child(even) {
  background-color: #EAF7F4;
  /* #EAF7F4 is tint-2 of #E5F5F2 */
}

.sticky-header th {
  position: sticky;
  top: 0;
  z-index: 1;
  background-color: white;
}

.has-sticky-header {
  /* adjust max-height to the need */
  max-height: 400px;
  overflow-y: auto;
}

.has-sticky-header thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: white;
}

.has-sticky-footer tfoot td {
  position: sticky;
  bottom: 0;
  z-index: 1;
  background: white;
}

.table-results {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.table-results th,
.table-results td {
  border: 1px solid #ddd;
  padding: 0.5rem 0.625rem;
}

.table-results th:not(:first-child),
.table-results td:not(:first-child) {
  text-align: right !important;
}

.table-results th {
  background-color: #f2f2f2;
}

.table-results tr:nth-child(even) {
  background-color: #f9f9f9;
}


div[data-name="fonctionnalites"] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
  grid-auto-rows: 1fr;
  grid-gap: 1rem;
}

div[data-name="fonctionnalites"]>div.card {
  height: 100%;
}

.box-shadow {
  /* box-shadow: -1px 0 1px 0 #D3D3D3, 1px 0 2px 0 #D3D3D3, 0 1px 0px 0 #B0B0B0; */
  box-shadow: 0 0 0 1px rgb(0 0 80 / .1), 0 1px 1px rgb(0 0 80 / .1), 0 1.5px 3px -2px rgb(0 0 80 / .3), 0 4px 6px rgb(0 0 80 / .04), 0 8px 12px -1px rgb(0 0 80 / .03);
}

.box-shadow-gentle-elevation {
  box-shadow:
    0 6px 20px rgba(0, 158, 134, 0.3),
    0 0 0 1px #009E86;
}

.box-shadow-balanced-depth {
  box-shadow:
    0 4px 15px rgba(0, 158, 134, 0.35),
    0 0 0 1px #009E86,
    0 0 25px rgba(0, 158, 134, 0.15);
}

.content-min-height {
  min-height: calc(100vh - var(--bulma-navbar-height) - 2 * var(--bulma-column-gap) - 3.25rem);
}

.content-height-40vh {
  height: calc(40vh - var(--bulma-navbar-height));
}

.content-height-50vh {
  height: calc(50vh - var(--bulma-navbar-height));
}

.content-height-60vh {
  height: calc(60vh - var(--bulma-navbar-height));
}

.aside-content-min-height {
  min-height: 10rem;
}

.width-7 {
  width: 6rem;
}

.is-half-width {
  width: 50%;
}

.is-fullwidth {
  width: 100%;
}

/* buttons */

.button-min-width {
  min-width: 5rem;
}

.button.is-small:not(.is-rounded) {
  border-radius: 3px;
}

.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) {
  border-radius: 3px;
}



.has-brd-b {
  border-bottom: thin solid #F1F1F1;
}

.bdr {
  border-width: thin;
  border-style: solid;
}

.bdr-dotted {
  border-style: dotted;
}

.bdr-t {
  border-top-width: thin;
  border-top-style: solid;
}

.bdr-t-dotted {
  border-top-style: dotted;
}

.bdr-b {
  border-bottom-width: thin;
  border-bottom-style: solid;
}

.bdr-b-dotted {
  border-bottom-style: dotted;
}

.bdr-grey-d {
  border-color: #DDD;
}

.bdr-grey-f1 {
  border-color: #F1F1F1;
}

.bdr-teal {
  border-color: var(--teal-primary);
}

.bdr-teal-t7 {
  border-color: var(--teal-t7);
}

.bdr-left-teal {
  border-left-color: var(--teal-primary);
}

.is-error {
  border-color: rgb(255, 102, 133); 
}

.bdr-none {
  border: none;
}

.bdr-radius {
  border-radius: 4px;
}

.bdr-shadow-popover {
  border: 2px solid rgba(153, 216, 206, 0.5);
  filter: drop-shadow(1px 2px 4px hsl(170, 45%, 72%));
}

.bg-gradient-popover {
  background: #E8F6F4;
  background: linear-gradient(90deg, rgba(232, 246, 244, 1) 0%, rgba(241, 241, 241, 1) 60%, rgba(254, 254, 254, 1) 100%);
}

.is-semibold,
.font-semibold {
  font-weight: 600 !important;
}

.is-bold,
.font-bold {
  font-weight: 700 !important;
}

.font-normal {
  font-weight: normal !important;
}

.is-condensed {
  letter-spacing: -0.02rem;
  word-spacing: -0.1rem;
}

.is-space-nowrap {
  white-space: nowrap;
}

.text-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
}

.text-underline {
  text-decoration: underline;
  text-decoration-thickness: 1px !important;
  /* text-underline-position: under; */
  text-underline-offset: 2px !important;
}

.is-bold-value:not([value=""]),
.has-value-bold:not([value=""]) { /* TODO : remove .has-value-bold */
  font-weight: bold;
}

.font-arial {
  font-family: Arial, sans-serif;
}

.font-playfair {
  font-family: 'Playfair Display', serif;
}

.font-segoe {
  font-family: Segoe, "Segoe UI", "DejaVu Sans", "Trebuchet MS", Verdana, sans-serif;
}

.font-roboto {
  font-family: 'Roboto', sans-serif;
}

.is-adjusted {
  font-size: 0.98rem;
}

/* Custom CSS for vertical tags */
.vertical-tags {
  flex-direction: column;
  gap: 0;
  width: fit-content;  /* to adapt */
}

.vertical-tags .tag {
  width: 100%;
}

.vertical-tags .tag:first-child {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.vertical-tags .tag:last-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.vertical-tags .tag:not(:first-child):not(:last-child) {
  border-radius: 0;
}

/* Custom tag (badge) bg-grey-f1 px-1 bdr-radius */

.badge {
  background-color: #f1f1f1;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  border-radius: 4px;
}

/* Listing CSS */

.listing li {
  padding: 6px 6px;
  cursor: pointer;
  user-select: none;
}

.listing li:nth-child(even) {
  background-color: #fbfbfb;
}

.listing li:first-child {
  border-top: thin solid #eee;
}

.listing li:last-child,
.listing li:not(:last-child) {
  border-bottom: thin solid #eee;
}

.listing li:hover {
  background-color: #daf1ed;
}

.listing li:has(input[type="checkbox"]:checked),
.listing li:has(input[type="radio"]:checked),
.listing li.is-selected {
  background-color: #ccece6;
}

.listing li.is-active {
  background: var(--bg-teal-light);
  background: var(--gradient-bg-teal-medium);
}

.listing.check-mark li.is-active {
  position: relative;
  padding-right: 0.75rem; /* space for the check mark */
}

.listing.check-mark li.is-active::after {
  content: "✔"; /* "✓" */
  color: var(--teal-primary);
  font-weight: bold;
  position: absolute;
  right: 3px;
  top: 6px;
}


.numbered-disc {
  list-style: none !important; /* Remove default markers */
  counter-reset: my-counter;   /* Initialize a counter */
}

.numbered-disc li {
  position: relative;
  padding-left: 2rem; /* Create space for the custom marker */
}

.numbered-disc li:not(:last-child) {
  margin-bottom: 1rem;
  /* Adjust spacing as needed */
}

.numbered-disc li::before {
  content: counter(my-counter);
  counter-increment: my-counter;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 22px; /* Size of the disc */
  height: 22px;
  background-color: var(--teal-primary); /* Color of the disc */
  color: white; /* Color of the number */
  border-radius: 50%; /* Make it a circle */
  display: flex; /* Use flexbox for centering */
  align-items: center; /* Vertically center the number */
  justify-content: center; /* Horizontally center the number */
  font-size: 16px;
}

.stepped-list {
  list-style: none !important;
  counter-reset: my-counter;
}

.stepped-list li {
  counter-increment: my-counter;
}

.stepped-list li::marker {
  content: 'Step ' counter(list-item) ' : ';
  color: var(--teal-primary);
}

.marker-teal li::marker {
  color: #009E86;
}

.marker-grey li::marker {
  color: #777;
}

.marker-bold li::marker {
  font-weight: bold;
}

.marker-italic li::marker {
  font-style: italic;
}

.marker-medium li::marker {
  font-size: 1.5rem;
}

.li-mt-1 li+li {
  margin-top: 0.25rem;
}

.li-mt-2 li+li {
  margin-top: 0.5rem;
}

.li-mt-3 li+li {
  margin-top: 0.75rem;
}

.li-mt-4 li+li {
  margin-top: 1rem;
}



.li-mb-4 li:not(:last-child) {
  margin-bottom: 1rem;
}


.list-style-none {
  list-style: none !important;
}


.number {
  position: relative;
  padding-left: 30px; /* Create space for the custom marker */
}

.number::before {
  content: attr(data-value); /* Display the number */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  background-color: var(--teal-primary);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

.grid-2-cols {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: repeat(2, 1fr);
  gap: 6px;
}

.grid-2-cols>label {
  justify-self: end;
  align-self: center;
}

.grid-rows-fr {
  grid-template-rows: 1fr;
}

.col-gap-3 {
  column-gap: 0.75rem;
}

.columns.has-gap-decoration {
  gap: 0.5rem;
}

.columns.has-gap-decoration .column {
  position: relative;
}

.columns.has-gap-decoration .column:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -0.25rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 90%;
  background-color: #DDD;
}

/* Vertical divider*/

.has-vertical-divider {
  gap: 2rem; 
}

.has-vertical-divider > * {
  position: relative;  
}

.has-vertical-divider > *:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -1rem;
  transform: translateY(-50%);
  width: 1px;
  height: 90%;
  background-color: #ccc;
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Styles for horizontal divider */

.horizontal-divider {
  display: flex;
  align-items: center;
  margin: 0.5rem 0;
}

.horizontal-divider .divider-title {
  margin-right: 1rem;
  margin-bottom: 0;
  white-space: nowrap;
  color: #009E86;
  font-family: 'Playfair Display', serif;
  font-size: 1.22rem;
  font-weight: bold;
}

.horizontal-divider .divider-line {
  flex: 1;
  height: 0.75px;
  background-color: #009E86;
  opacity: 0.3;
}

/* new divider styles to consider */

.is-divider-solid {
  border: 0;
  height: 1px;
  background: #dbdbdb; /* Bulma grey-light */
  margin: 1rem 0;
}

.is-divider-dashed {
  border: 0;
  border-top: 2px dashed #b5b5b5; /* Bulma grey */
  margin: 1rem 0;
}

.is-divider-gradient {
  border: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, #dbdbdb, transparent);
  margin: 2.5rem 0;
}

.is-divider-centered {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem 0;
}

.is-divider-centered::before,
.is-divider-centered::after {
  content: "";
  flex: 1;
  height: 0.2px;
  background: #e2e2e2;
  /* Bulma grey-lighter */
}

.is-divider-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem 0;
}

.is-divider-left::after {
  content: "";
  flex: 1;
  height: 0.2px;
  background: #e2e2e2;
}

.is-divider-centered.teal::before,
.is-divider-centered.teal::after,
.is-divider-left.teal::after {
  background: var(--teal-lightest);
}

.is-divider-dotted {
  border: 0;
  height: 1px;
  background-image: radial-gradient(currentColor 1px, transparent 1px);
  background-size: 6px 1px;
  background-repeat: repeat-x;
  background-position: left center;
  color: #b5b5b5; /* Bulma grey */
  margin: 1rem 0;
}

.is-medium::before,
.is-medium::after {
  height: 1px;
}

.has-bg-grey-light {
  background: #e7e7e7;
}


/* Styles for Bulma Spinner */

.spinner {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.spinner input {
  width: 5rem;
}

.spinner-buttons {
  display: flex;
  flex-direction: column;
  margin-left: 0.5px;
}

.spinner-buttons .button {
  padding: 0;
  width: 1.65rem;
  height: 1.245rem;
  font-size: 0.75rem;
  line-height: 1;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"][role="spinbutton"] {
  /* new */
  border-radius: 0.25rem;
}

.spinner.is-small input {
  /* new */
  padding: 3px 6px;
  height: 30px;
  width: 60px;
  border-radius: 0.25rem;
}

.spinner.is-small .spinner-buttons .button {
  /* new */
  height: 15px;
  width: 19px;
  font-size: 60%;
  border-radius: 2px;
  opacity: 0.8;
}

/* Styles for Handsontable */

.handsontable {
  font-family: 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.90rem !important;
  /* 0.875rem */
}

.handsontable th:first-child {
  vertical-align: middle !important;
}

.handsontable th {
  text-align: center !important;
}

.handsontable th span.green {
  color: #009E86 !important;
}

.th-line-height-1 th {
  line-height: 18px !important;
}

.th-line-height-2 th {
  line-height: 22px !important;
}

/* Styles for Popover */

.popover-container {
  position: relative;
}

.popover-trigger {
  cursor: pointer;
}

.popover {
  position: absolute;
  background: white;
  z-index: 100;
  /* Combined approach */
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transform-origin: center;
  pointer-events: none;
}

.popover.visible {
  display: block;
  opacity: 1;
  animation: popIn 0.3s ease forwards;
  pointer-events: auto;
}

@keyframes popIn {
  0% {
    transform: scale(0.9) translateX(-50%);
  }

  100% {
    transform: scale(1) translateX(-50%);
  }
}

.popover.top {
  top: 0%;
  left: 50%;
  transform: translate(-50%, -105%) !important;
}

.popover.right {
  top: 50%;
  left: 100%;
  transform: translate(1rem, -50%) !important;
}

.popover.bottom {
  top: 100%;
  left: 50%;
  transform: translate(-50%, 5%) !important;
}

.popover.left {
  top: 50%;
  left: 0%;
  transform: translate(-105%, -50%) !important;
}

.popover button[name="close"] {
  top: 9px;
  right: 9px;
}

/* Styles for Chart */

.chart-container {
  border-radius: 6px;
  max-width: 800px;
  width: 100%;
}

.chart-title {
  text-align: center;
  color: #2c3e50;
  font-size: 1.05rem;
}

.chart-wrapper {
  position: relative;
  margin: 0 auto;
  /* height: 200px; */
  display: flex;
  justify-content: center;
  /* align-items: center; */
}

/* Styles for Dropdown */

.dropdown-content {
  max-height: 12rem;  /* ~8 items */
  overflow-y: auto;
}

.dropdown-search {
  padding: 0.5rem;
  border-bottom: 1px solid #dbdbdb;
}

/* Rotate chevron when dropdown is active */
.dropdown.is-active .icon svg {
  transform: rotate(180deg);
  transition: transform 0.2s ease;
}

.icon svg {
  transition: transform 0.2s ease;
}

/* Dropdown animation */
.dropdown-menu {
  opacity: 0;
  transform: translateY(-5px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.dropdown.is-active .dropdown-menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Highlight selected item */
.dropdown-item.selected {
  background-color: hsl(171, 100%, 41%);
  /* Bulma primary */
  color: white;
}

/* Flash when selected */
.dropdown-item.flash {
  animation: flash 0.4s ease;
}

.dropdown-arrow {
  width: 24px;
  height: 24px;
  stroke: var(--bulma-link);
  /* Bulma link color */
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.2s ease;
}

/* Optional: rotate arrow when dropdown is active */
.dropdown.is-active .dropdown-arrow {
  transform: rotate(180deg);
}

@keyframes flash {
  0% {
    background-color: hsl(171, 100%, 35%);
  }

  100% {
    background-color: hsl(171, 100%, 41%);
  }
}

/* Radio-buttons styles */
.radio-buttons input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Checked radios → is-primary */
.radio-buttons input[type="radio"]:checked+.button {
  background-color: var(--bulma-primary);
  border-color: var(--bulma-primary);
  color: #fff;
}

.radio-buttons input[type="radio"]:focus-visible+.button {
  outline: 2px solid var(--bulma-focus);
  outline-offset: 2px;
}

.radio-buttons input[type="radio"][disabled]+.button {
  opacity: 0.5;
  pointer-events: none;
}

/* --- Corner + border hack for label-wrapped buttons --- */
.buttons.has-addons label .button {
  border-radius: 0;
  /* reset all */
}

.buttons.has-addons label:first-child .button {
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.buttons.has-addons label:last-child .button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.buttons.has-addons label:not(:first-child) .button {
  margin-left: -1px;   /* collapse borders neatly */
}

/* Styles Multi Columns*/

.no-break-inside {
  break-inside: avoid-column;
}

.no-break-after {
  break-after: avoid-column;
}

.no-break-before {
  break-before: avoid-column;
}

/* Circle Question */

.is-circle {
  display: inline-block;
  background-color: var(--bg-teal-subtle);
  color: var(--teal-primary);
  border-radius: 50%;
  width: 17px;
  height: 17px;
  line-height: 17px;
  text-align: center;
  font-size: 0.85rem;
  font-weight: bold;
  cursor: pointer;
  border: thin solid var(--teal-primary);
}

.is-circle.is-filled{
  background-color: var(--teal-primary);
  color: white;
}

.spotlight {
  padding: 0 1rem;
  border-radius: 4px;
  background: var(--gradient-teal-t7);
}


.progress-container {
  width: 70%;
  margin: 2rem auto;
  padding: 0.7rem 0.7rem 0.4rem 0.7rem;
  background-color: var(--bg-teal-light);
  border-radius: 6px;  
}

.progress-container.visible {
  display: block !important; 
}

/* HTML: <div class="spinner-rounded"></div> */

.spinner-rounded {
   width: 46px;
   height: 46px;
   border-radius: 50%;
   background: radial-gradient(farthest-side,#009E86 94%,#0000) top/12px 12px no-repeat,
          conic-gradient(#0000 30%,#009E86);
   -webkit-mask: radial-gradient(farthest-side,#0000 calc(100% - 12px),#000 0);
   mask: radial-gradient(farthest-side,#0000 calc(100% - 12px),#000 0);
   animation: spinner-rounded-anim 1.0s infinite linear;
}

@keyframes spinner-rounded-anim {
   100% {
      transform: rotate(1turn);
   }
}

.check-symbol {
  display: flex;
  justify-content: center;  /* center horizontally */
  align-items: center;  /* center vertically */
  width: 46px;
  height: 46px;  
}

.check-symbol::before {
  content: "\2713";   /* ✔ check mark */
  font-size: 50px;
  color: var(--teal-primary);
  font-weight: bolder;
}


/* Bullets */
.bullet::before {
  content: '●';
  margin-right: 0.25rem;
}

.bullet-square::before {
  content: '◼';
  margin-right: 0.25rem;
}

.bullet-square-o::before {
  content: '◻';
  margin-right: 0.25rem;
}

.bullet-square-shadowed::before {
  content: '❐';
  margin-right: 0.25rem;
}

.bullet-cross::before {
  content: '✘';
  margin-right: 0.25rem;
}

.bullet-check::before {
  content: '✔';
  margin-right: 0.25rem;
}

.bullet-triangle::before {
  content: '▶';
  margin-right: 0.25rem;
}

.bullet-80c::before {
  font-size: 80%;
}

.bullet-90c::before {
  font-size: 90%;
}

.bullet-teal::before {
  color: var(--teal-primary);
}

.bullet-red::before {
  color: var(--red-primary);
}

.bullet-coral::before {
  color: var(--coral-primary);
}


/* Toggle visiblility of ul[data-has-items] */

p[data-items="none"]{
  display: block;
}

ul[data-has-items="true"] + p[data-items="none"]{
  display: none;
}

/* Map Styling*/

.country {
  fill: #e8f5e9;
  stroke: #2e7d32;
  stroke-width: 0.5;
  cursor: pointer;
  transition: fill 0.3s;
}

.country:hover {
  fill: var(--teal-lightest) ; /* #66bb6a */
  stroke-width: 1.5;
}

.country.active {
  fill: var(--teal-light) ; /* #1976d2 */
  stroke: var(--teal-medium) ; /* #0d47a1 */
  stroke-width: 1.5;
}

.country.active:hover {
  fill: var(--teal-light); /* #1976d2 */
}

.small-island {
  stroke-width: 2;
  stroke: #ff6b6b;
}

.country-label {
  font-size: 11px;
  font-weight: bold;
  fill: #1a237e;
  text-anchor: middle;
  pointer-events: none;
  text-shadow: 1px 1px 2px white, -1px -1px 2px white, 1px -1px 2px white, -1px 1px 2px white;
}

.tooltip {
  position: absolute;
  padding: 6px 9px;
  background: whitesmoke;
  color: rgba(70, 70, 70, 0.8);
  border: thin solid #bbb;
  border-radius: 5px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  font-size: 14px;  
}

.tooltip.has-bidding {
  font-weight: bold;
  color: rgba(0, 0, 0, 0.8);
  background: var(--bg-teal-subtle);
  border-color: var(--teal-primary);
}

/* Masonry layout */

.masonry {
  display: flex;
  gap: 1rem;
}

.masonry-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Mobile: one column */
@media (max-width: 600px) {
  .masonry {
    flex-direction: column;
  }
}

/* Card */

.card-header {
  border-top-left-radius: 6px !important;
  border-top-right-radius: 6px !important;
}

.card-content{
  border-bottom-left-radius: 6px !important;
  border-bottom-right-radius: 6px !important;
}

.card-info {
  box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.08) 0px 0px 0px 1px;
  box-shadow: rgba(14, 63, 126, 0.06) 0px 0px 0px 1px, rgba(42, 51, 70, 0.03) 0px 1px 1px -0.5px, rgba(42, 51, 70, 0.04) 0px 2px 2px -1px, rgba(42, 51, 70, 0.04) 0px 3px 3px -1.5px, rgba(42, 51, 70, 0.03) 0px 5px 5px -2.5px, rgba(42, 51, 70, 0.03) 0px 10px 10px -5px, rgba(42, 51, 70, 0.03) 0px 24px 24px -8px;
  box-shadow: rgba(17, 17, 26, 0.05) 0px 1px 0px, rgba(17, 17, 26, 0.1) 0px 0px 8px;
}

.card-header-info {
  background: #33B199;
  background: linear-gradient(135deg, rgba(51, 177, 153, 1) 0%, rgba(0, 196, 167, 1) 60%, rgba(230, 245, 242, 1) 100%);
  color: white;
}

.info-section {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e8e8e8;
}

.info-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.info-title {
  color: var(--teal-primary);
  font-weight: 700;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.info-title i {
  font-size: 1.1rem;
}

.info-content {
  color: #4a4a4a;  
}

.info-content ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.info-content li {
  padding-left: 1.5rem;
  position: relative;
  margin-bottom: 0.5rem;
}

.info-content li:before {
  content: "▸";
  color: var(--teal-primary);
  position: absolute;
  left: 0;
  font-weight: bold;
}

.contact-box {
  background: var(--teal-lightest);
  padding: 1rem;
  border-radius: 8px;
  border-left: 4px solid var(--teal-primary);
}

.contact-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
  color: #2c3e50;
}

.contact-item:last-child {
  margin-bottom: 0;
}

.contact-item i {
  color: var(--teal-primary);
  width: 20px;
}

.contact-item a {
  color: var(--teal-dark);
  text-decoration: none;
  font-weight: 500;
}

.contact-item a:hover {
  text-decoration: underline;
}

/* Transform modification (n neg, p pos) */

.translateY-n-100c-before::before{
  transform: translateY(-100%) !important;
}
