:root {
  --c1:#f7f4f4;
  --c2:#f2f2f2fa;
  --c3:#e1e4e9;
  --c4:#d3d7dd;
  --c5:#d3dbe0;
  --c6:#e1e3e6;
  --c7:#c7cbd6;
  --c8:#edf1f4;
  --darker:#7190d415;
  --al1:#5b91cf;
  --al2:#bd3838;
  --al3:#008009;
  --al4:#c97c35;
  --a5:#dde1e4;
  --a5-light:#c0cbdb;
  --a1:#869bb3;
  --a2:#ebb3b3;
  --a3:#b4ebcd;
  --a4:#ebeaad;
  --t1:#333333;
  --t2:#686868;
  --t3:#888888;
  --t4:#adadad;
  --t1-invert:#f0f0f0;
  --t2-invert:#e2e1e1;
  --t3-invert:#d3d3d3;
  --blue1:#4d96ca;
  --blue2:#60a9dd;
  --blue3:#5b8fce;
  --blue:#355a73;
  --bg-theme:#f0efed;
  --green1:#9abca4;
  --green2:#3b9455;
  --green3:#327b5d;
  --red1:#c24f4f;
  --red2:#9e2e2e;
  --red3:#7c1212;
  --pink1:#cf7a92;
  --pink2:#99435c;
  --pink3:#5c252b;
  --gray1:#e2e2e2;
  --gray2:#bebebe;
  --gray3:#636363;
  --purple3:#a68cb6;
  --purple2:#7f5d99;
  --purple1:#604572;
  --btn-c1:#f0f0f0;
  --btn-c2:#e9e9e9;
  --btn-c3:#ccc;
  --btn-shadow:inset 0 -1px 0 #bbb, 0 1px 2px rgba(0, 0, 0, 0.1);
  --btn-shadow-a:inset 0 1px 2px #aaa;
  --shadow: #dbdbdb;
  /* --- NEW MODAL SHADOW VARIABLES (Light Theme) --- */
  --modal-shadow-default: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
                        0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --modal-shadow-active: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --yellow1:#daa63e;
  --yellow2:#b4882e;
  --yellow3:#8d7739;
  --white1:#eaeaea;
  --white2:#e2e0e0;
  --black1:#414141;
  --black2:#353535;
  --light-pink:#f8d7da;
  --light-green:#d4edda;
  --light-blue:#cce5ff;
  --light-yellow:#fff3cd;
}

html[data-theme=dark] {
  --c1:#070707;
  --c2:#1e1e1e;
  --c3:#313133;
  --c4:#313136;
  --c5:#2c2c2c;
  --c6:#19191b;
  --c7:#464649;
  --c8:#122737;
  --a1:#2a4768;
  --a2:#b62c2c;
  --a3:#2e7c51;
  --a4:#aca928;
  --a5:#262a2cff;
  --a5-light:#374151;
  --al1:#a8c2e0;
  --al2:#ebb3b3;
  --al3:#b4ebcd;
  --al4:#ebeaad;
  --t1:#dadada;
  --t2:#acacac;
  --t3:#929292;
  --t4:#707070;
  --t1-invert:#333333;
  --t2-invert:#444444;
  --t3-invert:#5f5f5f;
  --blue1:#0e243f;
  --blue2:#234166;
  --blue3:#5abaff;
  --bg-theme:#22242c;
  --green1:#295737;
  --green2:#2e9b4e;
  --green3:#59c485;
  --red1:#9c3d3d;
  --red2:#c73636;
  --red3:#e65656;
  --pink1:#b44168;
  --pink2:#b4555e;
  --pink3:#cf7a92;
  --gray1:#383838;
  --gray2:#646464;
  --gray3:#9e9e9e;
  --purple1:#4a4a68;
  --purple2:#7c7cb3;
  --purple3:#a0a0c0;
  --btn-c1:#1c1c1e;
  --btn-c2:#2c2c2e;
  --btn-c3:#3a3a3c;
  --btn-shadow:inset 0 -1px 0 rgba(255, 255, 255, 0.05), 0 2px 4px rgba(0, 0, 0, 0.6);
  --btn-shadow-a:inset 0 1px 2px rgba(255, 255, 255, 0.1);
  --shadow: #0e0e0e;
  /* --- OVERRIDE MODAL SHADOWS (Dark Theme) --- */
  /* A more opaque black shadow to be visible against the dark modal background. */
  --modal-shadow-default: 0 10px 15px -3px rgba(0, 0, 0, 0.4),
                        0 4px 6px -2px rgba(0, 0, 0, 0.3);
  --modal-shadow-active: 0 25px 50px -12px rgba(0, 0, 0, 0.6);
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  background-color: var(--c2);
  color: var(--t1);
  font-size: 1.2rem;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  overflow-wrap: break-word;
}

main {
  flex: 1;
}

ul, ol {
  list-style: none;
}

table {
  border-collapse: collapse;
}

img, picture, video, canvas {
  max-width: 100%;
  display: block;
}

input, button, textarea, select {
  font: inherit;
  outline: none;
  border: none;
  background: none;
  color: inherit;
}

button {
  cursor: pointer;
}

a {
  text-decoration: none;
  color: var(--t1);
}

hr {
  border: 0;
  height: 1px;
  background-color: var(--c6);
}

.h1 {
  font-size: 4.2rem;
  font-weight: 600;
  line-height: 1.1;
  margin-bottom: 2rem;
}

.h2 {
  font-size: 3.2rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 1.8rem;
}

.h3 {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 1.5rem;
}

.h4 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 1rem;
}

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

.t-right {
  text-align: right;
}

.t-upper {
  text-transform: uppercase;
}

.t-underline {
  text-decoration: underline;
}

.l-spacing-1 {
  letter-spacing: 3px;
}

.t-title-s {
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 1.1rem;
}

.nowrap {
  white-space: nowrap;
}

.f-size-12 {
  font-size: 1.2rem;
}

.f-size-14 {
  font-size: 1.4rem;
}

.f-size-16 {
  font-size: 1.6rem;
}

.f-size-20 {
  font-size: 2rem;
}

.f-size-24 {
  font-size: 2.4rem;
}

.f-size-30 {
  font-size: 3rem;
}

.f-size-40 {
  font-size: 4rem;
}

.f-weight-200 {
  font-weight: 200;
}

.f-weight-600 {
  font-weight: 600;
}

.f-weight-400 {
  font-weight: 400;
}

.link {
  color: var(--blue3);
  cursor: pointer;
}
.link:hover {
  color: var(--blue4);
  text-decoration: underline;
}

.a1 {
  color: var(--a1);
}

.a2 {
  color: var(--a2);
}

.a3 {
  color: var(--a3);
}

.a4 {
  color: var(--a4);
}

.t1 {
  color: var(--t1);
}

.t2 {
  color: var(--t2);
}

.t3 {
  color: var(--t3);
}

.t4 {
  color: var(--t4);
}

.t1-invert {
  color: var(--t1-invert);
}

.t2-invert {
  color: var(--t2-invert);
}

.blue1 {
  color: var(--blue1);
}

.blue2 {
  color: var(--blue2);
}

.blue3 {
  color: var(--blue3);
}

.green1 {
  color: var(--green1);
}

.green2 {
  color: var(--green2);
}

.green3 {
  color: var(--green3);
}

.red1 {
  color: var(--red1);
}

.red2 {
  color: var(--red2);
}

.red3 {
  color: var(--red3);
}

.pink1 {
  color: var(--pink1);
}

.pink2 {
  color: var(--pink2);
}

.pink3 {
  color: var(--pink3);
}

.gray1 {
  color: var(--gray1);
}

.gray2 {
  color: var(--gray2);
}

.gray3 {
  color: var(--gray3);
}

.black1 {
  color: var(--black1);
}

.black2 {
  color: var(--black2);
}

.white1 {
  color: var(--white1);
}

.white2 {
  color: var(--white2);
}

.yellow1 {
  color: var(--yellow1);
}

.yellow2 {
  color: var(--yellow2);
}

.yellow3 {
  color: var(--yellow3);
}

.purple1 {
  color: var(--purple1);
}

.purple2 {
  color: var(--purple2);
}

.purple3 {
  color: var(--purple3);
}

.al1 {
  color: var(--al1);
}

.al2 {
  color: var(--al2);
}

.al3 {
  color: var(--al3);
}

.al4 {
  color: var(--al4);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.transition-filter {
  transition: filter 0.2s ease-in-out;
}

.h-bright:hover {
  filter: brightness(1.2);
}

.h-dark:hover {
  filter: brightness(0.8);
}

.b-a1 {
  border: 1px solid var(--a1);
}

.b-b-a1 {
  border-bottom: 1px solid var(--a1);
}

.b-a2 {
  border: 1px solid var(--a2);
}

.b-b-a2 {
  border-bottom: 1px solid var(--a2);
}

.b-a3 {
  border: 1px solid var(--a3);
}

.b-b-a3 {
  border-bottom: 1px solid var(--a3);
}

.b-a4 {
  border: 1px solid var(--a4);
}

.b-b-a4 {
  border-bottom: 1px solid var(--a4);
}

.b-a5-light {
  border: 1px solid var(--a5-light);
}

.b-b-a5-light {
  border-bottom: 1px solid var(--a5-light);
}

.b-c1 {
  border: 1px solid var(--c1);
}

.b-b-c1 {
  border-bottom: 1px solid var(--c1);
}

.b-c2 {
  border: 1px solid var(--c2);
}

.b-b-c2 {
  border-bottom: 1px solid var(--c2);
}

.b-c3 {
  border: 1px solid var(--c3);
}

.b-b-c3 {
  border-bottom: 1px solid var(--c3);
}

.b-c4 {
  border: 1px solid var(--c4);
}

.b-b-c4 {
  border-bottom: 1px solid var(--c4);
}

.b-c5 {
  border: 1px solid var(--c5);
}

.b-b-c5 {
  border-bottom: 1px solid var(--c5);
}

.b-c6 {
  border: 1px solid var(--c6);
}

.b-b-c6 {
  border-bottom: 1px solid var(--c6);
}

.b-c7 {
  border: 1px solid var(--c7);
}

.b-b-c7 {
  border-bottom: 1px solid var(--c7);
}

.b-blue1 {
  border: 1px solid var(--blue1);
}

.b-b-blue1 {
  border-bottom: 1px solid var(--blue1);
}

.b-blue3 {
  border: 1px solid var(--blue3);
}

.b-b-blue3 {
  border-bottom: 1px solid var(--blue3);
}

.b-green1 {
  border: 1px solid var(--green1);
}

.b-b-green1 {
  border-bottom: 1px solid var(--green1);
}

.b-green3 {
  border: 1px solid var(--green3);
}

.b-b-green3 {
  border-bottom: 1px solid var(--green3);
}

.b-red1 {
  border: 1px solid var(--red1);
}

.b-b-red1 {
  border-bottom: 1px solid var(--red1);
}

.b-red3 {
  border: 1px solid var(--red3);
}

.b-b-red3 {
  border-bottom: 1px solid var(--red3);
}

.b-pink1 {
  border: 1px solid var(--pink1);
}

.b-b-pink1 {
  border-bottom: 1px solid var(--pink1);
}

.b-pink3 {
  border: 1px solid var(--pink3);
}

.b-b-pink3 {
  border-bottom: 1px solid var(--pink3);
}

.b-gray1 {
  border: 1px solid var(--gray1);
}

.b-b-gray1 {
  border-bottom: 1px solid var(--gray1);
}

.b-gray2 {
  border: 1px solid var(--gray2);
}

.b-b-gray2 {
  border-bottom: 1px solid var(--gray2);
}

.b-gray3 {
  border: 1px solid var(--gray3);
}

.b-b-gray3 {
  border-bottom: 1px solid var(--gray3);
}

.b-black1 {
  border: 1px solid var(--black1);
}

.b-b-black1 {
  border-bottom: 1px solid var(--black1);
}

.b-black2 {
  border: 1px solid var(--black2);
}

.b-b-black2 {
  border-bottom: 1px solid var(--black2);
}

.b-white1 {
  border: 1px solid var(--white1);
}

.b-b-white1 {
  border-bottom: 1px solid var(--white1);
}

.b-white2 {
  border: 1px solid var(--white2);
}

.b-b-white2 {
  border-bottom: 1px solid var(--white2);
}

.b-yellow1 {
  border: 1px solid var(--yellow1);
}

.b-b-yellow1 {
  border-bottom: 1px solid var(--yellow1);
}

.b-yellow2 {
  border: 1px solid var(--yellow2);
}

.b-b-yellow2 {
  border-bottom: 1px solid var(--yellow2);
}

.b-yellow3 {
  border: 1px solid var(--yellow3);
}

.b-b-yellow3 {
  border-bottom: 1px solid var(--yellow3);
}

.b-purple1 {
  border: 1px solid var(--purple1);
}

.b-b-purple1 {
  border-bottom: 1px solid var(--purple1);
}

.b-purple3 {
  border: 1px solid var(--purple3);
}

.b-b-purple3 {
  border-bottom: 1px solid var(--purple3);
}

.b-w-2 {
  border-width: 2px;
}

.b-w-3 {
  border-width: 3px;
}

.br-5 {
  border-radius: 0.5rem;
}

.br-1 {
  border-radius: 1rem;
}

/* ==========================================================================
   Box Model & Layout Utilities
   ========================================================================== */
/* ==========================================================================
   1. Spacing System (Margin & Padding)
   ========================================================================== */
.p-0 {
  padding: 0 !important;
}

.p-1 {
  padding: 0.5rem !important;
}

.p-2 {
  padding: 1rem !important;
}

.p-3 {
  padding: 1.5rem !important;
}

.p-4 {
  padding: 2rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.p-6 {
  padding: 4rem !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-1 {
  padding-top: 0.5rem !important;
}

.pt-2 {
  padding-top: 1rem !important;
}

.pt-3 {
  padding-top: 1.5rem !important;
}

.pt-4 {
  padding-top: 2rem !important;
}

.pt-5 {
  padding-top: 3rem !important;
}

.pt-6 {
  padding-top: 4rem !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-1 {
  padding-bottom: 0.5rem !important;
}

.pb-2 {
  padding-bottom: 1rem !important;
}

.pb-3 {
  padding-bottom: 1.5rem !important;
}

.pb-4 {
  padding-bottom: 2rem !important;
}

.pb-5 {
  padding-bottom: 3rem !important;
}

.pb-6 {
  padding-bottom: 4rem !important;
}

.pl-0 {
  padding-left: 0 !important;
}

.pl-1 {
  padding-left: 0.5rem !important;
}

.pl-2 {
  padding-left: 1rem !important;
}

.pl-3 {
  padding-left: 1.5rem !important;
}

.pl-4 {
  padding-left: 2rem !important;
}

.pl-5 {
  padding-left: 3rem !important;
}

.pl-6 {
  padding-left: 4rem !important;
}

.pr-0 {
  padding-right: 0 !important;
}

.pr-1 {
  padding-right: 0.5rem !important;
}

.pr-2 {
  padding-right: 1rem !important;
}

.pr-3 {
  padding-right: 1.5rem !important;
}

.pr-4 {
  padding-right: 2rem !important;
}

.pr-5 {
  padding-right: 3rem !important;
}

.pr-6 {
  padding-right: 4rem !important;
}

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.px-1 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.px-2 {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.px-3 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

.px-4 {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}

.px-5 {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}

.px-6 {
  padding-left: 4rem !important;
  padding-right: 4rem !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.py-1 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

.py-2 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.py-3 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.py-4 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.py-5 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.py-6 {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.m-0 {
  margin: 0 !important;
}

.m-1 {
  margin: 0.5rem !important;
}

.m-2 {
  margin: 1rem !important;
}

.m-3 {
  margin: 1.5rem !important;
}

.m-4 {
  margin: 2rem !important;
}

.m-5 {
  margin: 3rem !important;
}

.m-6 {
  margin: 4rem !important;
}

.m-auto {
  margin: auto !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-1 {
  margin-top: 0.5rem !important;
}

.mt-2 {
  margin-top: 1rem !important;
}

.mt-3 {
  margin-top: 1.5rem !important;
}

.mt-4 {
  margin-top: 2rem !important;
}

.mt-5 {
  margin-top: 3rem !important;
}

.mt-6 {
  margin-top: 4rem !important;
}

.mt-auto {
  margin: auto !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-1 {
  margin-bottom: 0.5rem !important;
}

.mb-2 {
  margin-bottom: 1rem !important;
}

.mb-3 {
  margin-bottom: 1.5rem !important;
}

.mb-4 {
  margin-bottom: 2rem !important;
}

.mb-5 {
  margin-bottom: 3rem !important;
}

.mb-6 {
  margin-bottom: 4rem !important;
}

.mb-auto {
  margin: auto !important;
}

.ml-0 {
  margin-left: 0 !important;
}

.ml-1 {
  margin-left: 0.5rem !important;
}

.ml-2 {
  margin-left: 1rem !important;
}

.ml-3 {
  margin-left: 1.5rem !important;
}

.ml-4 {
  margin-left: 2rem !important;
}

.ml-5 {
  margin-left: 3rem !important;
}

.ml-6 {
  margin-left: 4rem !important;
}

.ml-auto {
  margin: auto !important;
}

.mr-0 {
  margin-right: 0 !important;
}

.mr-1 {
  margin-right: 0.5rem !important;
}

.mr-2 {
  margin-right: 1rem !important;
}

.mr-3 {
  margin-right: 1.5rem !important;
}

.mr-4 {
  margin-right: 2rem !important;
}

.mr-5 {
  margin-right: 3rem !important;
}

.mr-6 {
  margin-right: 4rem !important;
}

.mr-auto {
  margin: auto !important;
}

.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.mx-1 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.mx-2 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.mx-3 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}

.mx-4 {
  margin-left: 2rem !important;
  margin-right: 2rem !important;
}

.mx-5 {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}

.mx-6 {
  margin-left: 4rem !important;
  margin-right: 4rem !important;
}

.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.my-1 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.my-2 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.my-3 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.my-4 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}

.my-5 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.my-6 {
  margin-top: 4rem !important;
  margin-bottom: 4rem !important;
}

.my-auto {
  margin: auto !important;
}

/* ==========================================================================
   2. Sizing System (Width & Height)
   ========================================================================== */
.w-25 {
  width: 25% !important;
}

.w-50 {
  width: 50% !important;
}

.w-75 {
  width: 75% !important;
}

.w-100 {
  width: 100% !important;
}

.w-auto {
  width: auto !important;
}

.w-screen {
  width: 100vw !important;
}

.max-w-xs {
  max-width: 36rem !important;
}

.max-w-sm {
  max-width: 50rem !important;
}

.max-w-md {
  max-width: 60rem !important;
}

.max-w-lg {
  max-width: 80rem !important;
}

.max-w-xl {
  max-width: 100rem !important;
}

.h-screen {
  height: 100vh !important;
}

.min-h-screen {
  min-height: 100vh !important;
}

.max-h-screen {
  max-height: 100vh !important;
}

.h-0 {
  height: 0 !important;
}

.min-h-0 {
  min-height: 0 !important;
}

.max-h-0 {
  max-height: 0 !important;
}

.h-1 {
  height: 0.5rem !important;
}

.min-h-1 {
  min-height: 0.5rem !important;
}

.max-h-1 {
  max-height: 0.5rem !important;
}

.h-2 {
  height: 1rem !important;
}

.min-h-2 {
  min-height: 1rem !important;
}

.max-h-2 {
  max-height: 1rem !important;
}

.h-3 {
  height: 1.5rem !important;
}

.min-h-3 {
  min-height: 1.5rem !important;
}

.max-h-3 {
  max-height: 1.5rem !important;
}

.h-4 {
  height: 2rem !important;
}

.min-h-4 {
  min-height: 2rem !important;
}

.max-h-4 {
  max-height: 2rem !important;
}

.h-5 {
  height: 3rem !important;
}

.min-h-5 {
  min-height: 3rem !important;
}

.max-h-5 {
  max-height: 3rem !important;
}

.h-6 {
  height: 4rem !important;
}

.min-h-6 {
  min-height: 4rem !important;
}

.max-h-6 {
  max-height: 4rem !important;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.fixed {
  position: fixed;
}

.sticky {
  position: sticky;
}

.sticky-top {
  position: sticky;
  top: 0;
  z-index: 10;
}

.img-icon {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 100%;
}

.w-s {
  width: clamp(36rem, 100vw, 50rem);
}

.w-m {
  width: clamp(50rem, 100vw, 64rem);
}

.grid-1 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(36rem, 1fr));
  gap: 1rem;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(46rem, 1fr));
  gap: 1rem;
}

.flex {
  display: flex;
}

.flex-desktop {
  display: flex;
}

.flex-content {
  flex: 1 1 auto;
  min-width: 24rem;
}

.flex-tab-reverse {
  display: flex;
}

.flex-1 {
  display: flex;
  align-items: center;
}

.flex-v {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.flex-equal {
  display: flex;
  gap: clamp(0.5rem, 2cqw, 1.5rem);
}
.flex-equal > div {
  flex: 1;
}
@container modal-content (max-width: 37.5em) {
  .flex-equal {
    flex-direction: column;
  }
}

.gap {
  gap: 1rem;
}

.gap2 {
  gap: 2rem;
}

.wrap {
  flex-wrap: wrap;
}

.flex-sb {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

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

.flex-col-sb {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}

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

.flex-60 {
  flex: 60%;
}

.flex-40 {
  flex: 40%;
}

.flex-item-60 {
  flex: 0 0 60%;
}

.flex-stretch {
  flex: 1;
  width: 100%;
}

.flex-grow {
  flex-grow: 1;
}

.flex-item-40 {
  flex: 1 1 40rem;
}

.flex-item-center {
  align-content: center;
}

.hero {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: calc(40vh - 4rem);
  color: var(--t1);
  border-bottom: 4px solid var(--red1);
  margin-bottom: 3rem;
}

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

.flex-container {
  display: flex;
  gap: 1rem;
}
.flex-container > section {
  flex: 1;
  padding: 1rem;
  border: 1px solid var(--c4);
}

.flex-col-full {
  display: flex;
  flex-direction: column;
}

.div-w-30-20 {
  max-width: 30rem;
  min-width: 20rem;
}

.div-w-64-42 {
  max-width: 64rem;
  min-width: 42rem;
}

.div-h-8 {
  min-height: 8rem;
}

.div-h-16 {
  height: 16rem;
}

.div-h-20 {
  height: 16rem;
}

.div-h-30 {
  height: 30rem;
}

.div-h-40 {
  height: 36rem;
}

.div-h-m-12 {
  min-height: 12rem;
}

.div-w-m-96 {
  max-width: 96rem;
}

.div-w-m-120 {
  min-width: 120rem;
}

.div-w-m-140 {
  max-width: 140rem;
}

.relative {
  position: relative;
}

.overflow {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--c1) var(--c4);
}

.container {
  margin: 0 auto;
  max-width: 114rem;
  width: 100%;
}

.container2 {
  display: flex;
  gap: 2rem;
}
.container2 > section {
  flex: 1;
  padding: 1rem;
}

.overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--c2);
  z-index: 1000;
}

.overlay-container {
  width: 100%;
  max-width: 114rem;
  margin: 6rem auto;
  padding: 2rem;
  background-color: var(--c1);
}

.sidebar-toggle {
  position: fixed;
  top: 3.6rem;
  background-color: var(--c2);
  border: none;
  cursor: pointer;
  z-index: 10;
  display: none;
  font-size: 2rem;
}

.sidebar.open {
  transform: translateX(0);
}

.sidebar {
  width: 25rem;
  background-color: var(--c3);
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 2rem 1rem;
  transition: transform 0.3s ease-in-out;
}
.sidebar li {
  margin: 1.5rem 0;
}
.sidebar a {
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  padding: 1rem 2rem;
  transition: background-color 0.3s;
  border-radius: 5px;
}
.sidebar a:hover, .sidebar a.active {
  background-color: var(--c6);
}

.split-container {
  display: flex;
  gap: min(2rem, 2%);
}

.split-box {
  flex: 1;
}

.flex-3-1 {
  display: flex;
  flex-wrap: wrap; /* Allows wrapping on smaller screens if needed */
  gap: 1rem; /* Adjust the space between columns as needed */
}

/* 
 * Target the direct children of the container.
 * The first child gets a flex value of 3, making it grow 3 times faster.
 * The second child gets a flex value of 1.
 * This creates the 75% / 25% split (minus the gap).
*/
.flex-3-1 > * {
  display: flex;
  /* Set a base that allows shrinking but prevents weird initial sizing */
  flex-basis: 0;
  flex-shrink: 1;
  flex-direction: column;
  gap: 1rem;
}

.flex-3-1 > *:nth-child(1) {
  flex-grow: 3;
}

.flex-3-1 > *:nth-child(2) {
  flex-grow: 1;
}

/* --- Responsive Stacking for Phones --- */
/* On screens 900px wide or less, change the direction to column */
@media (max-width: 900px) {
  .flex-3-1 {
    flex-direction: column;
  }
}
.f-green {
  fill: var(--green3);
}

.f-red {
  fill: var(--red3);
}

.f-purple {
  fill: var(--purple2);
}

.f-yellow {
  fill: var(--yellow1);
}

.f-current {
  fill: currentColor;
}

.icon-h-purple {
  fill: currentColor;
}
.icon-h-purple:hover {
  fill: var(--purple3);
}

.icon-btn {
  fill: currentColor;
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
}

.icon {
  display: inline-block;
  vertical-align: middle;
}

.icon-16 {
  width: 1.6rem;
  height: 1.6rem;
}

.icon-24 {
  width: 2.4rem;
  height: 2.4rem;
}

.icon-30 {
  width: 3rem;
  height: 3rem;
}

.icon-64 {
  width: 6.4rem;
  height: 6.4rem;
}

.no-fill {
  fill: none;
}

.stroke-y1 {
  stroke: var(--yellow1);
}

.fill-w1 {
  fill: var(--white1);
}

.t-icon {
  display: inline-block;
  width: 1.8rem;
  height: 1.8rem;
  cursor: help;
  color: var(--white1);
  font-size: 1.2rem;
  font-weight: bold;
  border-radius: 50%;
  text-align: center;
  line-height: 1.8rem;
}

.circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 100%;
  border: 1px solid var(--t1);
}

.transition-filter {
  transition: filter 0.4s ease;
}

.no-select {
  user-select: none;
}

.pointer {
  cursor: pointer;
}

.cursor-default {
  cursor: default;
}

.drag-handle {
  cursor: grab;
  transition: color 0.2s ease;
}
.drag-handle:hover {
  color: var(--al1);
}

.sortable-ghost {
  background-color: var(--a1);
  opacity: 0.7;
}

.sortable-grabbing {
  cursor: grabbing !important;
}

.shadow {
  box-shadow: 0 0px 3rem var(--shadow);
}

.shadow-s {
  box-shadow: 0 0px 0.6rem var(--shadow);
}

.hide {
  display: none;
}

.block {
  display: block;
}

.loading-container {
  position: relative; /* Essential for positioning the spinner inside */
  transition: opacity 0.3s ease-in-out;
}

/* 2. The Loading State */
/* Add this class dynamically with JavaScript to trigger the loading effect. */
.loading-container.is-loading {
  opacity: 0.6;
  pointer-events: none; /* Prevents user interaction with content below */
}

/* 3. The Spinner (Replaces Font Awesome) */
.loading-container.is-loading::after {
  content: ""; /* Required for pseudo-elements */
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  /* Spinner Size */
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px; /* Offset by half the width/height to center */
  /* Spinner Appearance */
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, 0.3); /* The light track of the spinner */
  border-top-color: #007bff; /* The color of the spinning part. Use your brand color! */
  /* Spinner Animation */
  animation: loading-spin 1s linear infinite;
}

/* 4. The Animation Keyframes */
@keyframes loading-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
#mainHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--c1);
  color: var(--t1);
  padding: 0 1rem;
}

.nav-links {
  display: flex;
}
.nav-links a {
  display: block;
}
.nav-links a:hover {
  color: var(--blue3);
}
.nav-links li {
  margin-right: 2rem;
}
.nav-links li.dropdown {
  position: relative;
}
.nav-links li.dropdown > a {
  padding: 1.2rem 0;
}
.nav-links li.dropdown ul {
  display: none;
  position: absolute;
  left: 0;
  background-color: var(--c1);
  padding: 1rem;
  min-width: 150px;
  max-width: 100vw;
  white-space: nowrap;
  overflow: hidden;
  border: 1px solid var(--c4);
  border-top: none;
  z-index: 1000;
}
.nav-links li.dropdown ul li {
  padding: 0.5rem 1rem;
}
.nav-links li.dropdown:hover ul {
  display: block;
}

.menu-toggle {
  display: none;
  font-size: 2rem;
  cursor: pointer;
}

.dropdown-menu {
  right: 0;
  top: 4rem;
  display: none;
  position: absolute;
  background-color: var(--c3);
  border-radius: 5px;
  min-width: 16rem;
  max-width: 32rem;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  z-index: 2000;
  padding: 1rem 0;
  border-radius: 4px;
}
.dropdown-menu li {
  padding: 0.6rem 1rem;
}
.dropdown-menu a:hover {
  color: var(--blue3);
}

.dropdown.active .dropdown-menu {
  display: block;
}

.header1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--c8);
  border-bottom: 3px solid var(--blue1);
  padding: 1rem;
}

.table {
  width: 100%;
}
.table thead tr {
  background-color: var(--c6);
  color: var(--t2);
}
.table th {
  text-align: start;
  padding: 1.2rem 1rem;
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 2px solid var(--c7);
  font-size: 1rem;
}
.table td {
  padding: 0.8rem 0.6rem;
  border-bottom: 1px solid var(--c7);
}
.table .cell-p-l1 {
  padding-left: 1rem;
}
.table .cell-p-l2 {
  padding-left: 2rem;
}
.table .cell-p-l3 {
  padding-left: 3rem;
}
.table .cell-p1 {
  padding: 1rem;
}
.table thead input {
  border: none;
  max-width: 12rem;
  background-color: var(--c3);
  color: var(--t1);
}
.table .sub-header td {
  padding: 1rem 0 1rem 0.2rem;
  background-color: var(--c5);
}
.table .tr-darker {
  background-color: var(--darker);
  font-weight: 500;
}
.table .tr-darker td {
  border-top: 2px solid var(--al1);
}

.table-hover tbody tr:hover {
  background-color: var(--c3);
}

.table-fixed {
  width: auto;
  table-layout: fixed;
}
.table-fixed .stretch {
  width: 100%;
}

.table-auto-number tbody {
  counter-reset: rowNumber;
}
.table-auto-number tr {
  counter-increment: rowNumber;
}
.table-auto-number td:first-of-type::before {
  content: counter(rowNumber);
  padding-right: 10px;
}

.side-table {
  width: 100%;
}
.side-table th, .side-table td {
  font-size: 1.2rem;
  text-align: left;
  border: 1px solid var(--c4);
  padding: 0.5rem 1rem;
}
.side-table th {
  background-color: var(--gray1);
  color: var(--t1);
  font-weight: normal;
  width: 12rem;
}
.side-table thead th {
  background-color: var(--c6);
}

.table-blank {
  width: 100%;
}
.table-blank tbody tr {
  border: 1px solid var(--c4);
}
.table-blank th {
  text-align: start;
  padding: 0.5rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  min-width: 2.5rem;
  font-weight: 500;
  text-align: center;
  border-radius: 0.5em;
  transition: background-color 0.2s, box-shadow 0.2s;
  cursor: pointer;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.05), 0 2px 4px rgba(0, 0, 0, 0.6);
}

.btn-black {
  color: var(--white1);
  background-color: #1c1c1e;
  border: 1px solid #3a3a3c;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.05), 0 2px 4px rgba(0, 0, 0, 0.6);
}

.btn-black:hover {
  background-color: #2c2c2e;
}

.btn-black:active {
  background: #3a3a3c;
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1);
}

.btn-white {
  color: var(--black1);
  background-color: #f0f0f0;
  border: 1px solid #ccc;
  box-shadow: inset 0 -1px 0 #bbb, 0 1px 2px rgba(0, 0, 0, 0.1);
}

.btn-white:hover {
  background-color: #e9e9e9;
}

.btn-white:active {
  background: #ddd;
  box-shadow: inset 0 1px 2px #aaa;
}

.btn-d {
  background-color: var(--btn-c1);
  border: 1px solid var(--btn-c3);
  box-shadow: var(--btn-shadow);
}

.btn-d:hover {
  background-color: var(--btn-c2);
}

.btn-d:active {
  background-color: var(--btn-c3);
  box-shadow: var(--btn-shadow-a);
}

.btn-square {
  height: 5rem;
  width: 5rem;
  padding: 0.5rem;
}

.btn-square svg {
  /* Adjust the size as needed. 60% often looks good. */
  width: 100%;
  height: 100%;
  fill: var(--t1);
}

.article h1, .article h2, .article h3 {
  color: var(--blue2);
}
.article h1 {
  text-align: center;
  margin-bottom: 1.2rem;
}
.article h2 {
  margin-top: 2rem;
}
.article p {
  margin-top: 1rem;
}
.article ul {
  margin: 0.8rem 0 1.2rem 1.2rem;
}

.b-section {
  padding: 1rem;
  border-radius: 1rem;
  margin-top: 1rem;
  border: 1px solid var(--c5);
}

.info-card {
  padding: 2rem;
  border-radius: 1rem;
  border: 1px solid var(--c5);
  background-color: var(--c3);
  padding: clamp(0.5rem, 0.1rem + 1cqw, 2rem);
}

.side-nav {
  width: 18rem;
  background-color: var(--c1);
  border-right: 1px solid var(--c4);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}
.side-nav nav {
  margin-top: 1rem;
  flex-grow: 1;
}
.side-nav li {
  display: flex;
  justify-content: space-between;
}
.side-nav li a {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.4rem 1rem;
  text-decoration: none;
  font-weight: 500;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.side-nav li a:hover {
  background-color: var(--c6);
}
.side-nav li a svg {
  width: 2.4rem;
  height: 2.4rem;
  fill: var(--t1);
}
.side-nav li button {
  margin: 0 0.5rem;
}
.side-nav li button:hover {
  color: var(--purple3);
}
.side-nav li a.active {
  background-color: var(--a1);
  color: var(--white1);
  font-weight: 600;
}
.side-nav li a.active svg {
  fill: var(--white1);
}

.message-container {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 1000;
}

.message {
  background-color: var(--c1);
  border: 1px solid var(--gray1);
  padding: 1rem;
  min-height: 12rem;
  width: 36rem; /* Set minimum width */
  font-size: 1.4rem;
  border-radius: 0.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  transition: opacity 0.5s ease;
  opacity: 1;
}
.message.error {
  background-color: var(--light-pink);
  border-color: var(--red1);
  color: var(--red3);
}
.message.success {
  border-color: var(--green2);
}
.message.warning {
  border-color: var(--yellow1);
  color: var(--yellow1);
}
.message.info {
  background-color: var(--light-blue);
  border-color: var(blue1);
  color: var(--blue3);
}
.message .close-btn {
  position: absolute; /* Absolute positioning */
  top: 0.5rem; /* Space from the top */
  right: 1rem; /* Space from the right */
  background: transparent;
  border: none;
  color: var(--gray3); /* Adjust color for visibility */
  font-size: 1.5rem; /* Make the close button large enough */
  cursor: pointer;
  padding: 0;
}
.message .close-btn:hover {
  color: var(--t1); /* Change color on hover */
}

.alert {
  font-size: 1.4rem;
  padding: 1rem 0;
}

.success {
  color: var(--green2);
}

.error {
  color: var(--red1);
}

fieldset {
  border-color: var(--c4);
  padding: 1rem;
  margin-bottom: 1.5rem;
  border-style: solid;
  border-radius: 5px;
}

.input {
  border: none;
  background-color: var(--c3);
  padding: 0.5rem;
  color: var(--t1);
  width: 100%;
}

.form-main > div {
  margin-bottom: 2rem;
}
.form-main input, .form-main textarea, .form-main select {
  display: block;
  width: 100%;
  border: none;
  padding: 0.4rem 1rem;
  background-color: rgba(0, 0, 0, 0.05);
  color: var(--t1);
}
.form-main input:focus, .form-main input:active, .form-main textarea:focus, .form-main textarea:active, .form-main select:focus, .form-main select:active {
  border-color: var(--blue2);
}
.form-main input {
  border-bottom: 1px solid var(--c4);
}
.form-main input[type=checkbox] {
  margin-left: 1rem;
  width: 1.6rem;
  height: 1.6rem;
  accent-color: var(--a1); /* Supported in most modern browsers for color */
  cursor: pointer;
  display: inline-block;
}
.form-main textarea, .form-main select[multiple] {
  border: 1px solid var(--c4);
  max-height: 36rem; /* Set the maximum height */
  min-height: 10rem; /* Set the minimum height */
  resize: vertical;
}
.form-main label {
  color: var(--t2);
}
.form-main .form-label {
  display: flex;
  margin-bottom: 0.4rem;
  justify-content: space-between;
}
.form-main [type=datetime-local], .form-main [type=date] {
  max-width: 22rem;
}
.form-main select {
  background-color: var(--c3);
  color: var(--t1);
  border: 1px solid var(c4);
  margin-top: 0.5rem;
  cursor: pointer;
}
.form-main select:hover,
.form-main select:focus {
  border-color: #777;
  outline: none;
}

.inline-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}

.inline-radio input[type=radio] {
  margin-right: 5px;
  vertical-align: middle;
}

.inline-radio label {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.required:after {
  content: " *";
  color: var(--red);
}

/* Scrollbar styling */
select::-webkit-scrollbar {
  width: 8px; /* Width of the scrollbar */
}

select::-webkit-scrollbar-track {
  background: #444; /* Dark background for the track */
}

select::-webkit-scrollbar-thumb {
  background-color: #888; /* Color of the scrollbar thumb */
  border-radius: 4px; /* Rounded edges for a smoother look */
}

select::-webkit-scrollbar-thumb:hover {
  background-color: #555; /* Darker shade on hover */
}

.errorlist {
  color: var(--pink2);
  font-size: 1.4rem;
}
.errorlist + input {
  border-color: var(--pink2);
}

select {
  min-width: 1rem;
}

select:active, select:focus {
  outline: none;
}

.select {
  background-color: var(--c3);
  border-color: #444;
  color: var(--t1);
  font-size: 1.2rem;
}

.nonfield {
  margin-bottom: 0.6rem;
}

.radio-container {
  display: flex;
  gap: 0.1rem;
}
.radio-container.hide {
  display: none;
}
.radio-container label {
  position: relative;
  cursor: pointer;
}
.radio-container input {
  display: none;
}
.radio-container input:checked + span {
  color: white;
}
.radio-container input:checked + span.radio-red {
  background-color: var(--red1);
}
.radio-container input:checked + span.radio-blue {
  background-color: var(--a1);
}
.radio-container input:checked + span.radio-green {
  background-color: var(--green1);
}
.radio-container input:checked + span.radio-yellow {
  background-color: var(--yellow1);
}
.radio-container input:checked + span.radio-pink {
  background-color: var(--pink-b);
}
.radio-container span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
  border-radius: 100%;
  border: 1px solid #b3c7d1;
  font-size: 1rem;
}

body[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(2); /* Inverts the color and increases brightness */
}

/* Optional: Adjust the input background and text color in dark theme */
body[data-theme=dark] input[type=date] {
  color: var(--t1); /* Light text color for better contrast */
}

.selection-list {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  flex-grow: 1;
  overflow-y: auto;
  gap: 0.4rem;
}
.selection-list li {
  padding: 0.5rem;
  border: 1px solid var(--c3); /* Optional border */
  font-size: 1.2rem;
  word-wrap: break-word; /* Handle long words */
}

.selection-list li:hover {
  background-color: var(--c2);
}

@media (max-width: 768px) {
  .selection-list {
    grid-template-rows: repeat(auto-fit, minmax(3rem, 1fr)); /* Adjust for smaller screens */
  }
}
.ul {
  list-style: disc;
  list-style-position: inside;
}

.list-select li.no-select {
  cursor: default;
}
.list-select li {
  cursor: pointer;
  font-size: 1.4rem;
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 0.3rem 0;
}
.list-select li:hover {
  background-color: var(--c4);
}
.list-select li a {
  width: 100%;
}

.list-link li {
  margin-bottom: 1rem;
}
.list-link li a {
  color: var(--blue1);
}
.list-link li a:hover {
  color: var(--blue2);
}

.autocomplete-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--c3);
  color: var(--t1);
  padding: 5px 10px;
  border: 1px solid var(--c4);
  border-radius: 4px;
  margin-bottom: 5px;
}

.autocomplete-results {
  position: absolute;
  background-color: var(--c3);
  z-index: 1000;
  max-height: 200px;
  overflow-y: auto;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
  display: none;
  color: var(--t1);
}

.autocomplete-results li {
  padding: 8px 12px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.autocomplete-results li:hover {
  background-color: var(--c4);
}

.pricing {
  display: flex;
  justify-content: center;
  gap: clamp(0.2rem, 1vw, 2rem);
  margin: 0 auto;
  max-width: 120rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.pricing section {
  flex-grow: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(0.2rem, 1vw, 2rem);
  border: 1px solid var(--c4);
  max-width: calc(25% - 2rem);
}
.pricing .pricing_desc {
  color: var(--t3);
  font-size: 1.2rem;
  min-height: 6rem;
  margin-bottom: 2rem;
}
.pricing .key-feature li {
  display: flex;
  margin-bottom: 0.6rem;
}
.pricing .key-feature svg {
  width: 2rem;
  height: 2rem;
}
.pricing .key-feature span {
  margin-left: 1rem;
}

.card1 {
  display: flex;
  align-items: start;
  justify-content: space-between;
  padding: 1rem 2rem;
  border: 1px solid var(--c6);
  background-color: var(--c4);
  gap: 1rem;
}
.card1:hover {
  background-color: var(--c3);
}

.card2 {
  background-color: var(--c2);
  border: 1px solid var(--c7);
  display: flex;
  flex-direction: column;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.6rem;
  border-bottom: 1px solid var(--c7);
}
.card-header h3 {
  font-weight: 600;
}

.modal {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
  width: 64rem;
  min-width: 25rem;
  max-width: calc(100vw - 4rem);
  min-height: 20rem;
  max-height: calc(100vh - 4rem);
  background: transparent;
  box-shadow: var(--modal-shadow-default);
  border-radius: 8px;
  transition: opacity 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden;
  resize: both;
}
.modal--large {
  width: 80rem;
}
.modal--small {
  width: 45rem;
}
.modal--closing {
  opacity: 0;
  pointer-events: none;
}
.modal--active {
  box-shadow: var(--modal-shadow-active);
}
.modal--active .modal__header {
  background-color: var(--blue2, #2a4a6e);
}
.modal__content {
  display: flex;
  flex-direction: column;
  flex: 1;
  height: 100%;
  background: var(--c2, #fff);
  border-radius: inherit;
  overflow: hidden;
}
.modal__content.modal--focus-animation {
  animation: modal-shake 0.4s ease-in-out;
}
.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1.5rem;
  background-color: var(--c-inactive, #6c757d);
  color: var(--white1, #ffffff);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  cursor: grab;
  user-select: none;
  flex-shrink: 0;
  transition: background-color 0.3s ease;
}
.modal__title {
  flex-grow: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.modal__title h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
}
.modal__close-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  font-size: 1.5rem;
  font-weight: bold;
  color: var(--t1, #e0e0e0);
  background-color: transparent;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 0.2s, color 0.2s;
}
.modal__close-button:hover {
  color: var(--t2, #ffffff);
  background-color: rgba(255, 255, 255, 0.2);
}
.modal__body {
  padding: 1.5rem;
  flex-grow: 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--c6) var(--c4);
}
.modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 1.5rem;
  background-color: var(--c3, #f7f7f7);
  border-top: 1px solid var(--c4, #e0e0e0);
  flex-shrink: 0;
}

@keyframes modal-shake {
  0% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-5px);
  }
  50% {
    transform: translateX(5px);
  }
  75% {
    transform: translateX(-5px);
  }
  100% {
    transform: translateX(0);
  }
}
.modal-content.modal--focus-animation {
  animation: modal-shake 0.4s ease-in-out;
}

.loading-spinner {
  position: relative; /* Required for the pseudo-element */
  width: 80%;
  height: 6px;
  background-color: var(--c4, #e0e0e0);
  border-radius: 3px;
  overflow: hidden; /* Clips the moving bar */
  /* Center it */
  margin: 5rem auto;
}

.loading-spinner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 50%; /* The width of the moving part */
  height: 100%;
  background-color: var(--blue2, #2a4a6e);
  /* The magic is in the animation */
  animation: pulse-line 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes pulse-line {
  0% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(200%); /* 200% = 100% of parent + 100% of self */
  }
  100% {
    transform: translateX(-100%);
  }
}
.winbox.emr-theme {
  background: transparent;
}

.winbox.emr-theme .wb-header {
  background-color: var(--c7); /* A neutral grey for inactive state */
}

.winbox.emr-theme.focus .wb-header {
  background: var(--blue2); /* Your secondary background/panel color */
}

.winbox.emr-theme .wb-body {
  background: var(--c2); /* Your primary content background */
  border: 1px solid var(--c4);
  border-top: none;
}

.winbox.emr-theme .modal__footer {
  background-color: var(--c2); /* Your secondary background/panel color */
}

.winbox.emr-theme .modal__body {
  scrollbar-width: thin;
  scrollbar-color: var(--gray2) var(--c2);
  padding: 0.5rem;
}

/*
=================================================
--- Window Controls Highlight (Min, Max, Close) ---
=================================================
*/
.winbox.emr-theme .wb-control span {
  transition: background-color 0.2s ease-in-out;
}

.winbox.emr-theme .wb-control span:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

.winbox.emr-theme .wb-min::before,
.winbox.emr-theme .wb-max::before,
.winbox.emr-theme .wb-max::after,
.winbox.emr-theme .wb-full::before,
.win-box.emr-theme .wb-full::after,
.winbox.emr-theme .wb-close::before,
.winbox.emr-theme .wb-close::after {
  background-color: var(--white1, #eaeaea);
}

/*
=================================================
--- Window Shake Animation ---
=================================================
*/
@keyframes wb-shake-keyframes {
  0% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-5px);
  }
  50% {
    transform: translateX(5px);
  }
  75% {
    transform: translateX(-5px);
  }
  100% {
    transform: translateX(0);
  }
}
.winbox.emr-theme.wb-shake .wb-header,
.winbox.emr-theme.wb-shake .wb-body {
  animation: wb-shake-keyframes 0.4s ease-in-out;
}

/* The problematic line */
.winbox.emr-theme .wb-body::-webkit-scrollbar-thumb {
  border: 3px solid var(--c4); /* Creates a nice padding effect around the thumb */
}

.modal-wrapper {
  container-type: inline-size;
  container-name: modal-content;
  width: 100%;
}

.pagination {
  text-align: center;
}
.pagination button {
  margin: 0 0.5rem;
}

.tag {
  display: inline-block;
  padding: 0.25em 0.6em;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
  border-radius: 0.25rem;
}

.tag-round {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  line-height: 2rem;
  text-align: center;
  border-radius: 50%;
  font-weight: 600;
}

.tooltip-container {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

.tooltip-text {
  visibility: hidden;
  width: 24rem;
  background-color: var(--c5);
  color: var(--white1);
  text-align: center;
  border-radius: 5px;
  padding: 8px;
  position: absolute;
  z-index: 1;
  bottom: 125%; /* Position above the icon */
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip-container:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

.main-sec {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32rem;
  text-align: center;
  color: var(--t1);
  background-color: var(--c2);
  border-bottom: 4px solid var(--red1);
  margin-bottom: 3rem;
}
.main-sec h1 {
  margin-bottom: 1vh;
  font-size: 4rem;
}
.main-sec h2 {
  margin-bottom: 1rem;
}
.main-sec p {
  font-size: 1.4rem;
  max-width: 60rem;
  color: var(--t3);
}

.sec {
  margin-bottom: 3rem;
}
.sec h2 {
  margin-bottom: 2rem;
}
.sec p {
  font-size: 1.4rem;
  margin-bottom: 1rem;
}

.feature {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 1rem;
}
.feature.col {
  flex-direction: column;
}
.feature svg {
  width: 6.4rem;
  height: 6.4rem;
  fill: transparent;
}
.feature > div {
  flex: 1 1 calc(33.333% - 1rem);
  min-width: 32rem;
  padding: 1rem;
  border: 1px solid var(--c6);
}
.feature p {
  color: var(--t2);
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
}
.feature li {
  list-style: disc;
  margin-left: 3rem;
}

.f-header {
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}
.f-header h3 {
  font-size: 2rem;
  color: var(--yellow1);
}

.infographic {
  margin-bottom: 2rem;
}
.infographic .steps {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.infographic .step {
  display: flex;
  align-items: center;
  border-radius: 8px;
  padding: 1rem;
  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
  background-color: var(--c4);
}
.infographic svg {
  width: 6rem;
  height: 6rem;
  margin-right: 2rem;
  fill: transparent;
}

.nav-filter {
  max-height: calc(100vh - 17rem);
  overflow-y: auto;
  flex: 0 0 18rem;
}
.nav-filter::-webkit-scrollbar {
  width: 8px;
}
.nav-filter::-webkit-scrollbar-track {
  background: transparent;
}
.nav-filter::-webkit-scrollbar-thumb {
  background-color: #4b5563;
  border-radius: 4px;
  border: 2px solid #262a2c;
}

.checkbox {
  display: flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background-color 0.2s ease;
}
.checkbox:hover {
  background-color: var(--a5-light);
}
.checkbox label {
  display: flex;
  align-items: center;
  cursor: pointer;
  width: 100%;
}
.checkbox label::before {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--blue2);
  border-radius: 4px;
  margin-right: 10px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.checkbox label:has(> input[type=checkbox]:focus-visible)::before {
  box-shadow: 0 0 0 2px #4338ca;
}
.checkbox label:has(> input[type=checkbox]:checked)::before {
  background-color: var(--blue3);
  border-color: var(--blue2);
  background-repeat: no-repeat;
  background-position: center;
}
.checkbox input[type=checkbox] {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

@media (min-width: 137.5em) {
  :root {
    font-size: 100%;
  }
}
@media (max-width: 56.25em) {
  .flex-desktop {
    display: block;
  }
  .container2 {
    display: block;
  }
  .pricing section {
    max-width: calc(50% - 1rem);
  }
  .div-h-20 {
    height: 16rem;
  }
  .div-h-40 {
    height: 25rem;
  }
  .sidebar {
    transform: translateX(-100%);
    position: absolute;
  }
  .sidebar-toggle {
    display: block;
  }
  .flex-tab-reverse {
    flex-direction: column-reverse;
  }
  .flex-item-60 {
    flex: 0 0 100%;
    width: 100%;
  }
  .split-container {
    flex-direction: column;
  }
  .f-size-20 {
    font-size: 1.4rem;
  }
}
@media (max-width: 37.5em) {
  .p1 {
    padding: 0.5rem;
  }
  .f-size-40 {
    font-size: 2.6rem;
  }
  .f-size-16 {
    font-size: 1.2rem;
  }
  .f-size-30 {
    font-size: 2rem;
  }
  .feature {
    flex-direction: column;
  }
  .f-header {
    flex-direction: row-reverse;
  }
  .menu-toggle {
    display: block;
  }
  .nav-links {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 3rem;
    left: 0;
    width: 100%;
    background-color: var(--c1);
    padding: 1rem;
    z-index: 1000;
  }
  .nav-links .dropdown > a {
    color: var(--yellow1);
  }
  .nav-links li.dropdown ul {
    display: block;
    position: relative;
    border: none;
    padding: 0;
  }
  .nav-links li.dropdown ul a {
    text-decoration: underline;
  }
  .nav-links.show {
    display: flex;
  }
  .table thead input {
    max-width: 6rem;
  }
  .div-h-20 {
    height: 12rem;
  }
  .div-h-30 {
    height: 20rem;
  }
  .div-h-40 {
    height: 20rem;
  }
  .pricing {
    justify-content: space-around;
  }
  .list-select li {
    font-size: 1.2rem;
  }
  .main-sec {
    height: 20rem;
  }
  .main-sec h1 {
    font-size: 2rem;
  }
  .main-sec h2 {
    font-size: 1.6rem;
  }
  .b-section {
    padding: 0.5rem;
    border: none;
  }
  .sidebar-toggle {
    top: 2.6rem;
  }
  .side-table th, .side-table td {
    padding: 0.2rem 0.5rem;
  }
  h2 {
    font-size: 1.6rem;
  }
  .modal {
    height: 95vh;
  }
  p {
    font-size: 1.2rem;
  }
}

/*# sourceMappingURL=main.css.map */
