[x-cloak]{
  display:none !important;
}
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:400; src:url(/fonts/dm-sans/dm-sans-400-latin.woff2) format("woff2"); unicode-range:u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304, u+0308, u+0329, u+2000-206f, u+2074, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:500; src:url(/fonts/dm-sans/dm-sans-500-latin.woff2) format("woff2"); unicode-range:u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304, u+0308, u+0329, u+2000-206f, u+2074, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:600; src:url(/fonts/dm-sans/dm-sans-600-latin.woff2) format("woff2"); unicode-range:u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304, u+0308, u+0329, u+2000-206f, u+2074, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:700; src:url(/fonts/dm-sans/dm-sans-700-latin.woff2) format("woff2"); unicode-range:u+00??, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+0304, u+0308, u+0329, u+2000-206f, u+2074, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:400; src:url(/fonts/dm-sans/dm-sans-400-latin-ext.woff2) format("woff2"); unicode-range:u+0100-024f, u+0259, u+1e??, u+2020, u+20a0-20ab, u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:500; src:url(/fonts/dm-sans/dm-sans-500-latin-ext.woff2) format("woff2"); unicode-range:u+0100-024f, u+0259, u+1e??, u+2020, u+20a0-20ab, u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:600; src:url(/fonts/dm-sans/dm-sans-600-latin-ext.woff2) format("woff2"); unicode-range:u+0100-024f, u+0259, u+1e??, u+2020, u+20a0-20ab, u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff; }
@font-face{ font-display:swap; font-family:DM Sans; font-style:normal; font-weight:700; src:url(/fonts/dm-sans/dm-sans-700-latin-ext.woff2) format("woff2"); unicode-range:u+0100-024f, u+0259, u+1e??, u+2020, u+20a0-20ab, u+20ad-20c0, u+2113, u+2c60-2c7f, u+a720-a7ff; }

:root{
  --spacing:0.25rem;
  --color-primary-50:#e8f5f8;
  --color-primary-100:#d0edf3;
  --color-primary-200:#a0d4df;
  --color-primary-300:#4ba3b5;
  --color-primary-400:#1a7a93;
  --color-primary-500:#145b6e;
  --color-primary-600:#0f4f60;
  --color-primary-700:#0b3340;
  --color-primary-800:#082830;
  --color-primary-900:#051e24;
  --color-secondary-50:#eef2ff;
  --color-secondary-100:#e0e7ff;
  --color-secondary-200:#c7d2fe;
  --color-secondary-300:#a5b4fc;
  --color-secondary-400:#818cf8;
  --color-secondary-500:#6366f1;
  --color-secondary-600:#4f46e5;
  --color-secondary-700:#4338ca;
  --color-secondary-800:#3730a3;
  --color-secondary-900:#312e81;
  --color-accent-50:#fdf5f2;
  --color-accent-100:#f7e3dc;
  --color-accent-200:#ecc8bc;
  --color-accent-300:#e0a593;
  --color-accent-400:#d48570;
  --color-accent-500:#c76b52;
  --color-accent-600:#b55d44;
  --color-accent-700:#9a4e39;
  --color-accent-800:#7d3e2d;
  --color-accent-900:#5c2e21;
  --color-gray-50:#faf9f7;
  --color-gray-100:#f3eee8;
  --color-gray-200:#e2e0db;
  --color-gray-300:#d1d5db;
  --color-gray-400:#9ca3af;
  --color-gray-500:#6b7280;
  --color-gray-600:#4b5563;
  --color-gray-700:#374151;
  --color-gray-800:#1f2937;
  --color-gray-900:#111827;
  --color-success-50:#f0fdf4;
  --color-success-100:#dcfce7;
  --color-success-500:#22c55e;
  --color-success-600:#16a34a;
  --color-success-700:#15803d;

  --color-warning-50:#fffbeb;
  --color-warning-100:#fef3c7;
  --color-warning-500:#f59e0b;
  --color-warning-600:#d97706;
  --color-warning-700:#b45309;

  --color-error-50:#fef2f2;
  --color-error-100:#fee2e2;
  --color-error-500:#ef4444;
  --color-error-600:#dc2626;
  --color-error-700:#b91c1c;

  --color-info-50:#eff6ff;
  --color-info-100:#dbeafe;
  --color-info-500:#3b82f6;
  --color-info-600:#2563eb;
  --color-info-700:#1d4ed8;
  --color-white:#fff;
  --color-black:#000;
  --color-bg-primary:var(--color-white);
  --color-bg-secondary:var(--color-gray-100);
  --color-bg-tertiary:var(--color-gray-200);
  --color-text-primary:var(--color-gray-900);
  --color-text-secondary:var(--color-gray-600);
  --color-text-tertiary:var(--color-gray-500);
  --color-border-default:var(--color-gray-300);
  --color-border-subtle:var(--color-gray-100);
  --font-sans:"Atkinson Hyperlegible", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", "Arial", sans-serif;
  --font-serif:"Georgia", "Times New Roman", serif;
  --font-mono:"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace;
  --text-xs:0.75rem;
  --text-sm:0.875rem;
  --text-base:1rem;
  --text-lg:1.125rem;
  --text-xl:1.25rem;
  --text-2xl:1.5rem;
  --text-3xl:1.875rem;
  --text-4xl:2.25rem;
  --text-5xl:3rem;
  --text-6xl:3.75rem;
  --font-weight-normal:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --font-weight-extrabold:800;
  --leading-none:1;
  --leading-tight:1.25;
  --leading-snug:1.375;
  --leading-normal:1.5;
  --leading-relaxed:1.625;
  --leading-loose:2;
  --spacing-0:0;
  --spacing-1:0.25rem;
  --spacing-2:0.5rem;
  --spacing-3:0.75rem;
  --spacing-4:1rem;
  --spacing-5:1.25rem;
  --spacing-6:1.5rem;
  --spacing-8:2rem;
  --spacing-10:2.5rem;
  --spacing-12:3rem;
  --spacing-16:4rem;
  --spacing-20:5rem;
  --spacing-24:6rem;
  --spacing-32:8rem;
  --radius-sm:0.25rem;
  --radius-default:0.375rem;
  --radius-md:0.5rem;
  --radius-lg:0.75rem;
  --radius-xl:1rem;
  --radius-2xl:1.5rem;
  --radius-full:9999px;
  --shadow-xs:0 1px 2px 0 rgba(0,0,0,.05);
  --shadow-sm:0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1);
  --shadow-default:0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);
  --shadow-md:0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
  --shadow-lg:0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);
  --shadow-xl:0 25px 50px -12px rgba(0,0,0,.25);
  --z-base:0;
  --z-dropdown:1000;
  --z-sticky:1100;
  --z-fixed:1200;
  --z-modal-backdrop:1300;
  --z-modal:1400;
  --z-popover:1500;
  --z-tooltip:1600;
  --app-height:100vh;
  --safe-area-top:env(safe-area-inset-top, 0px);
  --safe-area-bottom:env(safe-area-inset-bottom, 0px);
  --safe-area-left:env(safe-area-inset-left, 0px);
  --safe-area-right:env(safe-area-inset-right, 0px);
  --transition-fast:150ms ease-in-out;
  --transition-base:200ms ease-in-out;
  --transition-slow:300ms ease-in-out;
  --container-sm:640px;
  --container-md:768px;
  --container-lg:1024px;
  --container-xl:1280px;
  --container-2xl:1536px;
  --breakpoint-sm:640px;
  --breakpoint-md:768px;
  --breakpoint-lg:1024px;
  --breakpoint-xl:1280px;
  --breakpoint-2xl:1536px;
}
@supports (height:100dvh){
  :root{
    --app-height:100dvh;
  }
}

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

html{
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

body{
  background-color:var(--color-bg-secondary);
  font-family:var(--font-sans);
  font-size:var(--text-base);
  line-height:var(--leading-normal);
  min-height:100vh;
}

body,h1,h2,h3,h4,h5,h6{
  color:var(--color-text-primary);
}

h1,h2,h3,h4,h5,h6{
  font-weight:var(--font-weight-bold);
  line-height:var(--leading-tight);
  margin-bottom:var(--spacing-4);
}

h1{
  font-size:var(--text-4xl);
}

h1,h2{
  letter-spacing:-.025em;
}

h2{
  font-size:var(--text-3xl);
}

h3{
  font-size:var(--text-2xl);
}

h4{
  font-size:var(--text-xl);
}

h5{
  font-size:var(--text-lg);
}

h6{
  font-size:var(--text-base);
}

p{
  line-height:var(--leading-relaxed);
  margin-bottom:var(--spacing-4);
}

a{
  color:var(--color-primary-600);
  text-decoration:none;
  transition:color var(--transition-fast);
}

a:hover{
  color:var(--color-primary-700);
}

a:focus-visible{
  border-radius:var(--radius-sm);
  outline:2px solid var(--color-primary-500);
  outline-offset:2px;
}

b,strong{
  font-weight:var(--font-weight-semibold);
}

em,i{
  font-style:italic;
}

small{
  font-size:var(--text-sm);
}

code{
  background-color:var(--color-gray-100);
  border-radius:var(--radius-sm);
  color:var(--color-gray-800);
  font-size:.875em;
  padding:.125rem .375rem;
}

code,pre{
  font-family:var(--font-mono);
}

pre{
  background-color:var(--color-gray-900);
  border-radius:var(--radius-md);
  color:var(--color-gray-100);
  font-size:var(--text-sm);
  margin-bottom:var(--spacing-4);
  overflow-x:auto;
  padding:var(--spacing-4);
}

pre code{
  background:none;
  color:inherit;
  padding:0;
}

.container{
  margin-left:auto;
  margin-right:auto;
  max-width:var(--container-xl);
  padding-left:var(--spacing-4);
  padding-right:var(--spacing-4);
  width:100%;
}

@media (min-width:640px){
  .container{
    padding-left:var(--spacing-6);
    padding-right:var(--spacing-6);
  }
}

@media (min-width:1024px){
  .container{
    padding-left:var(--spacing-8);
    padding-right:var(--spacing-8);
  }
}

.section{
  padding-bottom:var(--spacing-16);
  padding-top:var(--spacing-16);
}

.btn{
  align-items:center;
  border:1px solid transparent;
  border-radius:var(--radius-md);
  cursor:pointer;
  display:inline-flex;
  font-size:var(--text-base);
  font-weight:var(--font-weight-medium);
  gap:var(--spacing-2);
  justify-content:center;
  line-height:var(--leading-tight);
  padding:var(--spacing-3) var(--spacing-6);
  text-align:center;
  transition:all var(--transition-base);
  user-select:none;
  white-space:nowrap;
}

.btn:focus-visible{
  outline:2px solid var(--color-primary-500);
  outline-offset:2px;
}

.btn:disabled{
  cursor:not-allowed;
  opacity:.6;
  pointer-events:none;
}

.btn-primary{
  background-color:var(--color-primary-600);
  border-color:var(--color-primary-600);
  color:var(--color-white);
}

.btn-primary:hover:not(:disabled){
  background-color:var(--color-primary-700);
  border-color:var(--color-primary-700);
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}

.btn-secondary{
  background-color:var(--color-secondary-600);
  border-color:var(--color-secondary-600);
  color:var(--color-white);
}

.btn-secondary:hover:not(:disabled){
  background-color:var(--color-secondary-700);
  border-color:var(--color-secondary-700);
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}

.btn-outline{
  background-color:transparent;
  border-color:var(--color-primary-600);
  color:var(--color-primary-700);
}

.btn-outline:hover:not(:disabled){
  background-color:var(--color-primary-50);
  color:var(--color-primary-800);
}

.btn-ghost{
  background-color:transparent;
  border-color:transparent;
  color:var(--color-gray-700);
}

.btn-ghost:hover:not(:disabled){
  background-color:var(--color-gray-100);
  color:var(--color-gray-900);
}

.btn-danger{
  background-color:var(--color-error-600);
  border-color:var(--color-error-600);
  color:var(--color-white);
}

.btn-danger:hover:not(:disabled){
  background-color:var(--color-error-700);
  border-color:var(--color-error-700);
}

.btn-success{
  background-color:var(--color-success-600);
  border-color:var(--color-success-600);
  color:var(--color-white);
}

.btn-success:hover:not(:disabled){
  background-color:var(--color-success-700);
  border-color:var(--color-success-700);
}

.btn-sm{
  font-size:var(--text-sm);
  min-height:44px;
  padding:var(--spacing-3) var(--spacing-4);
}

.btn-lg{
  font-size:var(--text-lg);
  padding:var(--spacing-4) var(--spacing-8);
}

.btn-icon{
  aspect-ratio:1;
  min-height:44px;
  min-width:44px;
  padding:var(--spacing-2);
}

.btn-block{
  width:100%;
}

.card{
  background-color:var(--color-bg-primary);
  border:1px solid var(--color-border-default);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:all var(--transition-base);
}

.card:hover{
  box-shadow:var(--shadow-md);
}

.card-header{
  border-bottom:1px solid var(--color-border-default);
}

.card-body,.card-footer,.card-header{
  padding:var(--spacing-6);
}

.card-footer{
  background-color:var(--color-bg-secondary);
  border-top:1px solid var(--color-border-default);
}

.card-title{
  color:var(--color-text-primary);
  font-size:var(--text-xl);
  font-weight:var(--font-weight-semibold);
  margin-bottom:var(--spacing-2);
}

.card-description{
  color:var(--color-text-secondary);
  font-size:var(--text-sm);
}

.card-interactive{
  cursor:pointer;
}

.card-interactive:hover{
  border-color:var(--color-primary-300);
  box-shadow:var(--shadow-lg);
  transform:translateY(-4px);
}

.form-group{
  margin-bottom:var(--spacing-6);
}

.form-label{
  color:var(--color-text-primary);
  display:block;
  font-size:var(--text-sm);
  font-weight:var(--font-weight-medium);
  margin-bottom:var(--spacing-2);
}

.form-label-required:after{
  color:var(--color-error-500);
  content:" *";
}

.form-input,.form-select,.form-textarea{
  background-color:var(--color-bg-primary);
  border:1px solid var(--color-border-default);
  border-radius:var(--radius-md);
  color:var(--color-text-primary);
  font-size:var(--text-base);
  line-height:var(--leading-normal);
  min-height:44px;
  padding:var(--spacing-3) var(--spacing-4);
  transition:all var(--transition-fast);
  width:100%;
}
.form-select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");
  background-position:right var(--spacing-3) center;
  background-repeat:no-repeat;
  background-size:1.25rem 1.25rem;
  padding-right:var(--spacing-10);
}
input[type=search]{
  -webkit-appearance:textfield;
}

input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{
  -webkit-appearance:none;
  display:none;
}

.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--color-primary-500);
  box-shadow:0 0 0 3px rgba(59,130,246,.1);
  outline:none;
}

.form-input:disabled,.form-select:disabled,.form-textarea:disabled{
  background-color:var(--color-gray-100);
  cursor:not-allowed;
  opacity:.6;
}

.form-input::placeholder,.form-textarea::placeholder{
  color:var(--color-text-tertiary);
}

.form-textarea{
  min-height:120px;
  resize:vertical;
}

.form-helper{
  color:var(--color-text-secondary);
}

.form-error,.form-helper{
  display:block;
  font-size:var(--text-sm);
  margin-top:var(--spacing-2);
}

.form-error{
  color:var(--color-error-600);
}

.form-input-error,.form-input-error:focus{
  border-color:var(--color-error-500);
}

.form-input-error:focus{
  box-shadow:0 0 0 3px rgba(239,68,68,.1);
}

.form-check{
  align-items:center;
  display:flex;
  gap:var(--spacing-2);
}

.form-check-input{
  accent-color:var(--color-primary-600);
  cursor:pointer;
  height:1rem;
  width:1rem;
}

.form-check-label{
  color:var(--color-text-primary);
  cursor:pointer;
  font-size:var(--text-sm);
}

.nav{
  background-color:var(--color-bg-primary);
  border-bottom:1px solid var(--color-border-default);
  box-shadow:var(--shadow-sm);
}

.nav-container{
  height:4rem;
  justify-content:space-between;
  padding:0 var(--spacing-4);
}

.nav-brand,.nav-container{
  align-items:center;
  display:flex;
}

.nav-brand{
  color:var(--color-text-primary);
  font-size:var(--text-xl);
  font-weight:var(--font-weight-bold);
  gap:var(--spacing-3);
}

.nav-brand-logo{
  height:40px !important;
  object-fit:contain;
  width:40px !important;
}

.nav-menu{
  align-items:center;
  display:flex;
  gap:var(--spacing-6);
  list-style:none;
}

.nav-link{
  border-radius:var(--radius-default);
  color:var(--color-text-secondary);
  font-size:var(--text-base);
  font-weight:var(--font-weight-medium);
  padding:var(--spacing-2) var(--spacing-3);
  transition:all var(--transition-fast);
}

.nav-link:hover{
  background-color:var(--color-bg-secondary);
  color:var(--color-text-primary);
}

.nav-link-active{
  background-color:var(--color-primary-50);
  color:var(--color-primary-600);
}

.nav-link-active:hover{
  color:var(--color-primary-700);
}

.nav-toggle{
  background:transparent;
  border:none;
  color:var(--color-text-primary);
  cursor:pointer;
  display:none;
  padding:var(--spacing-2);
}

@media (max-width:768px){
  .nav-toggle{
    display:flex;
  }

  .nav-menu{
    display:none;
  }

  .nav-menu-mobile{
    border-top:1px solid var(--color-border-default);
    display:flex;
    flex-direction:column;
    gap:var(--spacing-2);
    padding:var(--spacing-4);
  }

  .nav-menu-mobile .nav-link{
    text-align:left;
    width:100%;
  }
}

.modal-backdrop{
  animation:fadeIn var(--transition-base);
  background-color:rgba(0,0,0,.5);
  height:100%;
  left:0;
  position:fixed;
  top:0;
  width:100%;
  z-index:var(--z-modal-backdrop);
}

.modal{
  animation:slideUp var(--transition-base);
  background-color:var(--color-bg-primary);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-xl);
  left:50%;
  max-height:90vh;
  max-height:90dvh;
  max-width:600px;
  overflow:hidden;
  position:fixed;
  top:50%;
  transform:translate(-50%, -50%);
  width:90%;
  z-index:var(--z-modal);
}
@media (max-width:640px){
  .modal{
    max-height:85vh;
    max-height:85dvh;
    overflow-y:auto;
    width:95%;
  }
  .keyboard-open .modal{
    max-height:70vh;
    max-height:70dvh;
    top:40%;
  }
}

.modal-header{
  align-items:center;
  border-bottom:1px solid var(--color-border-default);
  display:flex;
  justify-content:space-between;
  padding:var(--spacing-6);
}

.modal-title{
  color:var(--color-text-primary);
  font-size:var(--text-2xl);
  font-weight:var(--font-weight-semibold);
}

.modal-close{
  background:transparent;
  border:none;
  border-radius:var(--radius-default);
  color:var(--color-text-secondary);
  cursor:pointer;
  padding:var(--spacing-2);
  transition:all var(--transition-fast);
}

.modal-close:hover{
  background-color:var(--color-gray-100);
  color:var(--color-text-primary);
}

.modal-body{
  max-height:calc(90vh - 160px);
  overflow-y:auto;
  padding:var(--spacing-6);
}

.modal-footer{
  align-items:center;
  background-color:var(--color-bg-secondary);
  border-top:1px solid var(--color-border-default);
  display:flex;
  gap:var(--spacing-3);
  justify-content:flex-end;
  padding:var(--spacing-6);
}

.alert{
  border-left:4px solid;
  border-radius:var(--radius-md);
  margin-bottom:var(--spacing-4);
  padding:var(--spacing-4) var(--spacing-6);
}

.alert-info{
  background-color:var(--color-info-50);
  border-color:var(--color-info-500);
  color:var(--color-info-700);
}

.alert-success{
  background-color:var(--color-success-50);
  border-color:var(--color-success-500);
  color:var(--color-success-700);
}

.alert-warning{
  background-color:var(--color-warning-50);
  border-color:var(--color-warning-500);
  color:var(--color-warning-700);
}

.alert-error{
  background-color:var(--color-error-50);
  border-color:var(--color-error-500);
  color:var(--color-error-700);
}

.alert-title{
  font-weight:var(--font-weight-semibold);
  margin-bottom:var(--spacing-1);
}

.toast-container{
  flex-direction:column;
  max-width:400px;
  position:fixed;
  right:var(--spacing-4);
  top:var(--spacing-4);
  z-index:var(--z-tooltip);
}

.toast,.toast-container{
  display:flex;
  gap:var(--spacing-3);
}

.toast{
  align-items:flex-start;
  animation:slideInRight var(--transition-base);
  background-color:var(--color-bg-primary);
  border:1px solid var(--color-border-default);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  padding:var(--spacing-4);
}

.toast-icon{
  flex-shrink:0;
  height:1.25rem;
  width:1.25rem;
}

.toast-content{
  flex:1;
}

.toast-title{
  font-size:var(--text-sm);
  font-weight:var(--font-weight-semibold);
  margin-bottom:var(--spacing-1);
}

.toast-message{
  font-size:var(--text-sm);
}

.toast-close,.toast-message{
  color:var(--color-text-secondary);
}

.toast-close{
  background:transparent;
  border:none;
  border-radius:var(--radius-sm);
  cursor:pointer;
  flex-shrink:0;
  padding:var(--spacing-1);
}

.toast-close:hover{
  background-color:var(--color-gray-100);
}

.badge{
  align-items:center;
  border-radius:var(--radius-full);
  display:inline-flex;
  font-size:var(--text-xs);
  font-weight:var(--font-weight-medium);
  letter-spacing:.05em;
  padding:var(--spacing-1) var(--spacing-3);
  text-transform:uppercase;
}

.badge-primary{
  background-color:var(--color-primary-100);
  color:var(--color-primary-700);
}

.badge-secondary{
  background-color:var(--color-secondary-100);
  color:var(--color-secondary-700);
}

.badge-success{
  background-color:var(--color-success-100);
  color:var(--color-success-700);
}

.badge-warning{
  background-color:var(--color-warning-100);
  color:var(--color-warning-700);
}

.badge-error{
  background-color:var(--color-error-100);
  color:var(--color-error-700);
}

.badge-gray{
  background-color:var(--color-gray-100);
  color:var(--color-gray-700);
}

.avatar{
  align-items:center;
  background-color:var(--color-gray-200);
  border-radius:var(--radius-full);
  color:var(--color-gray-600);
  display:inline-flex;
  font-weight:var(--font-weight-medium);
  justify-content:center;
  overflow:hidden;
}

.avatar-xs{
  font-size:var(--text-xs);
  height:1.5rem;
  width:1.5rem;
}

.avatar-sm{
  font-size:var(--text-sm);
  height:2rem;
  width:2rem;
}

.avatar-md{
  font-size:var(--text-base);
  height:2.5rem;
  width:2.5rem;
}

.avatar-lg{
  font-size:var(--text-lg);
  height:3rem;
  width:3rem;
}

.avatar-xl{
  font-size:var(--text-xl);
  height:4rem;
  width:4rem;
}

.avatar img{
  height:100%;
  object-fit:cover;
  width:100%;
}

.dropdown{
  display:inline-block;
  position:relative;
}

.dropdown-menu{
  animation:slideDown var(--transition-fast);
  background-color:var(--color-bg-primary);
  border:1px solid var(--color-border-default);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  margin-top:var(--spacing-2);
  min-width:12rem;
  overflow:hidden;
  position:absolute;
  right:0;
  top:100%;
  z-index:var(--z-dropdown);
}

.dropdown-item{
  background:transparent;
  border:none;
  color:var(--color-text-primary);
  cursor:pointer;
  display:block;
  font-size:var(--text-sm);
  padding:var(--spacing-3) var(--spacing-4);
  text-align:left;
  transition:background-color var(--transition-fast);
  width:100%;
}

.dropdown-item:hover{
  background-color:var(--color-bg-secondary);
}

.dropdown-divider{
  background-color:var(--color-border-default);
  height:1px;
  margin:var(--spacing-2) 0;
}
.d-none{ display:none; }
.d-block{ display:block; }
.d-inline{ display:inline; }
.d-inline-block{ display:inline-block; }
.d-flex{ display:flex; }
.d-inline-flex{ display:inline-flex; }
.d-grid{ display:grid; }
.flex-row{ flex-direction:row; }
.flex-column{ flex-direction:column; }
.flex-wrap{ flex-wrap:wrap; }
.flex-nowrap{ flex-wrap:nowrap; }
.justify-start{ justify-content:flex-start; }
.justify-center{ justify-content:center; }
.justify-end{ justify-content:flex-end; }
.justify-between{ justify-content:space-between; }
.justify-around{ justify-content:space-around; }
.items-start{ align-items:flex-start; }
.items-center{ align-items:center; }
.items-end{ align-items:flex-end; }
.items-stretch{ align-items:stretch; }
.flex-1{ flex:1; }
.gap-1{ gap:var(--spacing-1); }
.gap-2{ gap:var(--spacing-2); }
.gap-3{ gap:var(--spacing-3); }
.gap-4{ gap:var(--spacing-4); }
.gap-6{ gap:var(--spacing-6); }
.gap-8{ gap:var(--spacing-8); }
.grid-cols-1{ grid-template-columns:repeat(1, minmax(0, 1fr)); }
.grid-cols-2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.grid-cols-4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
.grid-cols-7{ grid-template-columns:repeat(7, minmax(0, 1fr)); }
.m-0{ margin:var(--spacing-0); }
.m-1{ margin:var(--spacing-1); }
.m-2{ margin:var(--spacing-2); }
.m-3{ margin:var(--spacing-3); }
.m-4{ margin:var(--spacing-4); }
.m-6{ margin:var(--spacing-6); }
.m-8{ margin:var(--spacing-8); }

.mt-0{ margin-top:var(--spacing-0); }
.mt-1{ margin-top:var(--spacing-1); }
.mt-2{ margin-top:var(--spacing-2); }
.mt-3{ margin-top:var(--spacing-3); }
.mt-4{ margin-top:var(--spacing-4); }
.mt-6{ margin-top:var(--spacing-6); }
.mt-8{ margin-top:var(--spacing-8); }

.mb-0{ margin-bottom:var(--spacing-0); }
.mb-1{ margin-bottom:var(--spacing-1); }
.mb-2{ margin-bottom:var(--spacing-2); }
.mb-3{ margin-bottom:var(--spacing-3); }
.mb-4{ margin-bottom:var(--spacing-4); }
.mb-6{ margin-bottom:var(--spacing-6); }
.mb-8{ margin-bottom:var(--spacing-8); }

.ml-auto{ margin-left:auto; }
.mr-auto{ margin-right:auto; }
.p-0{ padding:var(--spacing-0); }
.p-1{ padding:var(--spacing-1); }
.p-2{ padding:var(--spacing-2); }
.p-3{ padding:var(--spacing-3); }
.p-4{ padding:var(--spacing-4); }
.p-6{ padding:var(--spacing-6); }
.p-8{ padding:var(--spacing-8); }

.px-4{ padding-left:var(--spacing-4); padding-right:var(--spacing-4); }
.px-6{ padding-left:var(--spacing-6); padding-right:var(--spacing-6); }
.px-8{ padding-left:var(--spacing-8); padding-right:var(--spacing-8); }

.py-4{ padding-bottom:var(--spacing-4); padding-top:var(--spacing-4); }
.py-6{ padding-bottom:var(--spacing-6); padding-top:var(--spacing-6); }
.py-8{ padding-bottom:var(--spacing-8); padding-top:var(--spacing-8); }
.text-left{ text-align:left; }
.text-right{ text-align:right; }
.text-uppercase{ text-transform:uppercase; }
.text-lowercase{ text-transform:lowercase; }
.text-capitalize{ text-transform:capitalize; }
.font-normal{ font-weight:var(--font-weight-normal); }
.font-medium{ font-weight:var(--font-weight-medium); }
.font-semibold{ font-weight:var(--font-weight-semibold); }
.font-bold{ font-weight:var(--font-weight-bold); }
.text-primary{ color:var(--color-primary-600); }
.text-secondary{ color:var(--color-text-secondary); }
.text-muted{ color:var(--color-text-tertiary); }
.text-success{ color:var(--color-success-600); }
.text-warning{ color:var(--color-warning-600); }
.text-error{ color:var(--color-error-600); }
.bg-white{ background-color:var(--color-white); }
.bg-gray-50{ background-color:var(--color-gray-50); }
.bg-gray-100{ background-color:var(--color-gray-100); }
.bg-primary{ background-color:var(--color-primary-600); }
.bg-secondary{ background-color:var(--color-secondary-600); }
.rounded-sm{ border-radius:var(--radius-sm); }
.rounded{ border-radius:var(--radius-default); }
.rounded-md{ border-radius:var(--radius-md); }
.rounded-lg{ border-radius:var(--radius-lg); }
.rounded-full{ border-radius:var(--radius-full); }
.shadow-sm{ box-shadow:var(--shadow-sm); }
.shadow{ box-shadow:var(--shadow-default); }
.shadow-md{ box-shadow:var(--shadow-md); }
.shadow-lg{ box-shadow:var(--shadow-lg); }
.shadow-none{ box-shadow:none; }
.w-full{ width:100%; }
.w-auto{ width:auto; }
.h-full{ height:100%; }
.h-auto{ height:auto; }
.max-w-sm{ max-width:var(--container-sm); }
.max-w-md{ max-width:var(--container-md); }
.max-w-lg{ max-width:var(--container-lg); }
.max-w-xl{ max-width:var(--container-xl); }
.max-w-full{ max-width:100%; }
.overflow-y-auto{ overflow-y:auto; }
.position-relative{ position:relative; }
.position-absolute{ position:absolute; }
.position-fixed{ position:fixed; }
.position-sticky{ position:sticky; }

@keyframes fadeIn{
  0%{ opacity:0; }
  to{ opacity:1; }
}

@keyframes fadeOut{
  0%{ opacity:1; }
  to{ opacity:0; }
}

@keyframes slideUp{
  0%{
    opacity:0;
    transform:translate(-50%, -40%);
  }
  to{
    opacity:1;
    transform:translate(-50%, -50%);
  }
}

@keyframes slideDown{
  0%{
    opacity:0;
    transform:translateY(-10px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes slideInRight{
  0%{
    opacity:0;
    transform:translateX(20px);
  }
  to{
    opacity:1;
    transform:translateX(0);
  }
}
@media (max-width:767px){
  .hide-mobile{ display:none !important; }
}

@media (min-width:768px){
  .show-mobile{ display:none !important; }
}
.grid-cols-1{ grid-template-columns:repeat(1, minmax(0, 1fr)) !important; }

@media (min-width:640px){
  .sm\:grid-cols-2{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
  .sm\:grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)) !important; }
}

@media (min-width:768px){
  .md\:grid-cols-2{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
  .md\:grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)) !important; }
  .md\:grid-cols-4{ grid-template-columns:repeat(4, minmax(0, 1fr)) !important; }
}

@media (min-width:1024px){
  .lg\:grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)) !important; }
  .lg\:grid-cols-4{ grid-template-columns:repeat(4, minmax(0, 1fr)) !important; }
}
@media (min-width:640px){
  .sm\:table-cell{ display:table-cell !important; }
}
@media (min-width:768px){
  .md\:table-cell{ display:table-cell !important; }
}
@media (min-width:1024px){
  .lg\:table-cell{ display:table-cell !important; }
}
.max-w-xs{ max-width:20rem; }
.max-w-sm{ max-width:24rem; }
.truncate{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
table{
  border-collapse:collapse;
}
input[type=checkbox].rounded{
  border-radius:.25rem;
}
.flex-grow{ flex-grow:1; }
.min-w-0{ min-width:0; }
.min-w-full{ min-width:100%; }
.w-16{ width:4rem; }
.w-56{ width:14rem; }
.w-64{ width:16rem; }
.h-1-5,.h-1\.5{ height:.375rem; }
.divide-y>*+*{ border-top-style:solid; border-top-width:1px; }
.divide-gray-200>*+*{ border-color:var(--color-gray-200, #e2e0db); }
.sticky{ position:sticky; }
.top-24{ top:6rem; }
.inset-0{ inset:0; }
.left-3{ left:.75rem; }
.top-4{ top:1rem; }
.right-4{ right:1rem; }
.translate-y-1\/2{ transform:translateY(50%); }
.overflow-x-auto{ overflow-x:auto; }
.overflow-auto{ overflow:auto; }
.overflow-hidden{ overflow:hidden; }
.scrollbar-hide{
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.scrollbar-hide::-webkit-scrollbar{
  display:none;
}
.whitespace-nowrap{ white-space:nowrap; }
.whitespace-pre-wrap{ white-space:pre-wrap; }
.z-40{ z-index:40; }
.z-50{ z-index:50; }
.space-y-1>*+*{ margin-top:.25rem; }
.space-y-1-5>*+*,.space-y-1\.5>*+*{ margin-top:.375rem; }
.space-y-2>*+*{ margin-top:.5rem; }
.gap-1{ gap:.25rem; }
.gap-1-5,.gap-1\.5{ gap:.375rem; }
.gap-2{ gap:.5rem; }
.gap-3{ gap:.75rem; }
.gap-4{ gap:1rem; }
.gap-6{ gap:1.5rem; }
.pointer-events-none{ pointer-events:none; }
.object-contain{ object-fit:contain; }
.opacity-50{ opacity:.5; }
.opacity-60{ opacity:.6; }
.font-mono{ font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; }
@keyframes spin{
  0%{ transform:rotate(0deg); }
  to{ transform:rotate(1turn); }
}
.animate-spin{ animation:spin 1s linear infinite; }
@media (min-width:1024px){
  .lg\:block{ display:block !important; }
  .lg\:hidden{ display:none !important; }
}
@media (max-width:639px){
  .sm\:hidden{ display:none !important; }
}
@media (min-width:640px){
  .sm\:flex{ display:flex !important; }
  .sm\:inline{ display:inline !important; }
  .sm\:w-auto{ width:auto !important; }
  .sm\:w-64{ width:16rem !important; }
  .sm\:flex-initial{ flex:0 1 auto !important; }
  .sm\:m-4{ margin:1rem !important; }
  .sm\:rounded-xl{ border-radius:.75rem !important; }
  .sm\:max-w-6xl{ max-width:72rem !important; }
  .sm\:max-h-\[90vh\]{ max-height:90vh !important; }
}
@media (max-width:767px){
  .hidden.md\:table-cell{ display:none !important; }
}
.hidden.sm\:flex{ display:none; }
@media (min-width:640px){
  .hidden.sm\:flex{ display:flex !important; }
}
.hidden.sm\:inline{ display:none; }
@media (min-width:640px){
  .hidden.sm\:inline{ display:inline !important; }
}
.sr-only{
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute;
  width:1px;
  clip:rect(0, 0, 0, 0);
  border-width:0;
  white-space:nowrap;
}
:focus-visible{
  outline:2px solid var(--color-primary-500);
  outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  *,:after,:before{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

@media (prefers-color-scheme:dark){
  :root{
    --color-bg-primary:var(--color-gray-900);
    --color-bg-secondary:var(--color-gray-800);
    --color-bg-tertiary:var(--color-gray-700);
    --color-text-primary:var(--color-gray-100);
    --color-text-secondary:var(--color-gray-400);
    --color-text-tertiary:var(--color-gray-500);
    --color-border-default:var(--color-gray-700);
    --color-border-subtle:var(--color-gray-800);
  }

  .card,.form-input,.form-select,.form-textarea{
    background-color:var(--color-gray-800);
    border-color:var(--color-gray-700);
  }

  .form-input,.form-select,.form-textarea{
    color:var(--color-gray-100);
  }

  code{
    background-color:var(--color-gray-800);
    color:var(--color-gray-200);
  }
  body.bg-gray-50{
    background-color:var(--color-gray-900, #111827);
  }

  .bg-gray-50,.bg-white{
    background-color:var(--color-gray-800, #1f2937);
  }

  .bg-gray-100{
    background-color:var(--color-gray-700, #374151);
  }
  .text-gray-900{
    color:var(--color-gray-100, #f3eee8);
  }

  .text-gray-800{
    color:var(--color-gray-200, #e2e0db);
  }

  .text-gray-700{
    color:var(--color-gray-300, #d1d5db);
  }

  .text-gray-500,.text-gray-600{
    color:var(--color-gray-400, #9ca3af);
  }

  .text-gray-400{
    color:var(--color-gray-500, #6b7280);
  }
  .border-gray-200{
    border-color:var(--color-gray-700, #374151);
  }

  .border-gray-300{
    border-color:var(--color-gray-600, #4b5563);
  }
  .prose{
    color:var(--color-gray-200, #e2e0db);
  }

  .prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{
    color:var(--color-gray-100, #f3eee8);
  }

  .prose blockquote,.prose li,.prose p{
    color:var(--color-gray-300, #d1d5db);
  }

  .prose a{
    color:#4ba3b5;
  }

  .prose strong{
    color:var(--color-gray-100, #f3eee8);
  }

  .prose code{
    background-color:var(--color-gray-700, #374151);
    color:var(--color-gray-200, #e2e0db);
  }

  .prose blockquote{
    border-left-color:var(--color-gray-600, #4b5563);
  }
  .shadow-lg,.shadow-md{
    box-shadow:0 4px 6px -1px rgba(0,0,0,.3),0 2px 4px -1px rgba(0,0,0,.2);
  }
  .hover\:bg-gray-50:hover{
    background-color:var(--color-gray-700, #374151);
  }

  .hover\:bg-gray-100:hover{
    background-color:var(--color-gray-600, #4b5563);
  }

  .hover\:text-gray-900:hover{
    color:var(--color-gray-100, #f3eee8);
  }
  .bg-purple-100{ background-color:rgba(147,51,234,.2); }
  .bg-blue-100{ background-color:rgba(20,91,110,.2); }
  .bg-yellow-100{ background-color:rgba(234,179,8,.2); }
  .bg-green-100{ background-color:rgba(34,197,94,.2); }
  .bg-red-100{ background-color:rgba(239,68,68,.2); }

  .text-purple-800{ color:#c4b5fd; }
  .text-blue-800{ color:#a0d4df; }
  .text-yellow-800{ color:#fde047; }
  .text-green-800{ color:#86efac; }
  .text-red-800{ color:#fca5a5; }
  .bg-teal-50{
    background-color:rgba(20,91,110,.15);
  }

  .border-teal-200{
    border-color:rgba(20,91,110,.3);
  }

  .text-teal-800{
    color:#a0d4df;
  }

  .text-teal-700{
    color:#4ba3b5;
  }

  .text-teal-600{
    color:#1a7a93;
  }
  .bg-blue-50{
    background-color:rgba(20,91,110,.15);
  }

  .border-blue-200{
    border-color:rgba(20,91,110,.3);
  }

  .text-blue-700{
    color:#a0d4df;
  }

  .text-blue-600{
    color:#4ba3b5;
  }
}
footer[role=contentinfo] .grid{
  display:grid;
  gap:2rem;
  grid-template-columns:repeat(1, minmax(0, 1fr));
}

@media (min-width:768px){
  footer[role=contentinfo] .grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (min-width:1024px){
  footer[role=contentinfo] .grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}
footer[role=contentinfo] .flex{
  align-items:center;
  display:flex;
  flex-direction:column;
  gap:1rem;
}

@media (min-width:768px){
  footer[role=contentinfo] .flex.md\:flex-row{
    flex-direction:row;
    justify-content:space-between;
  }
}
footer[role=contentinfo] a:hover,footer[role=contentinfo] button.hover\:text-white:hover{
  color:#fff !important;
}
#contact-modal .max-w-lg{
  max-width:32rem;
}

@media (max-width:640px){
  #contact-modal .max-w-lg{
    margin:1rem;
    max-width:calc(100vw - 2rem);
  }
}
.h-4{ height:1rem; }
.h-8{ height:2rem; }
.h-10{ height:2.5rem; }
.w-4{ width:1rem; }
.w-8{ width:2rem; }
.w-10{ width:2.5rem; }
.flex-shrink-0{ flex-shrink:0; }
.flex-1{ flex:1 1 0%; }
.mr-3{ margin-right:.75rem; }
.mr-4{ margin-right:1rem; }
.ml-2{ margin-left:.5rem; }
.ml-3{ margin-left:.75rem; }
.ml-4{ margin-left:1rem; }
svg{ fill:currentColor; }

.block{
  display:block !important;
}

.inline-block{
  display:inline-block !important;
}

.flex{
  display:flex;
}

.inline-flex{
  display:inline-flex;
}

.grid{
  display:grid;
}
.fixed{
  position:fixed !important;
}

.absolute{
  position:absolute !important;
}

.relative{
  position:relative !important;
}

.inset-0{
  bottom:0 !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
}
.z-40{
  z-index:40 !important;
}

.z-50{
  z-index:50 !important;
}
.bg-black\/50{
  background-color:rgba(0,0,0,.5) !important;
}

.bg-black\/80{
  background-color:rgba(0,0,0,.8) !important;
}
.items-center{
  align-items:center !important;
}

.items-start{
  align-items:flex-start !important;
}

.justify-center{
  justify-content:center !important;
}

.justify-between{
  justify-content:space-between !important;
}

.justify-end{
  justify-content:flex-end !important;
}
.left-1\/2{
  left:50% !important;
}

.-translate-x-1\/2{
  transform:translateX(-50%) !important;
}

.-translate-y-1\/2{
  transform:translateY(-50%) !important;
}
.bottom-6{
  bottom:1.5rem !important;
}
.w-24{
  width:6rem;
}

.h-24{
  height:6rem;
}

.w-12{
  width:3rem;
}

.h-12{
  height:3rem;
}

.w-5{
  width:1.25rem;
}

.h-5{
  height:1.25rem;
}

.w-6{
  width:1.5rem;
}

.h-6{
  height:1.5rem;
}
.mx-auto{
  margin-left:auto;
  margin-right:auto;
}

.mb-2{
  margin-bottom:.5rem;
}

.mb-4{
  margin-bottom:1rem;
}

.mb-6{
  margin-bottom:1.5rem;
}

.mr-2{
  margin-right:.5rem;
}
.py-12{
  padding-bottom:3rem;
  padding-top:3rem;
}

.px-4{
  padding-left:1rem;
  padding-right:1rem;
}

.py-2{
  padding-bottom:.5rem;
  padding-top:.5rem;
}

.px-6{
  padding-left:1.5rem;
  padding-right:1.5rem;
}

.py-3{
  padding-bottom:.75rem;
  padding-top:.75rem;
}
.text-center{
  text-align:center;
}

.text-xl{
  font-size:1.25rem;
  line-height:1.75rem;
}

.text-3xl{
  font-size:1.875rem;
  line-height:2.25rem;
}

.font-bold{
  font-weight:700;
}

.font-semibold{
  font-weight:600;
}
.text-gray-300{
  color:#d1d5db;
}

.text-gray-500{
  color:#6b7280;
}

.text-gray-600{
  color:#4b5563;
}

.text-gray-700{
  color:#374151;
}

.text-gray-900{
  color:#111827;
}

.text-white{
  color:#fff;
}

.bg-blue-600,.bg-teal-600{
  background-color:#0f4f60;
}

.bg-purple-600{
  background-color:#9333ea;
}

.bg-green-600{
  background-color:#16a34a;
}

.bg-orange-600{
  background-color:#ea580c;
}

.bg-indigo-600{
  background-color:#4f46e5;
}

.bg-gray-50{
  background-color:#faf9f7;
}

.hover\:bg-teal-700:hover{
  background-color:#0f766e;
}

.hover\:bg-purple-700:hover{
  background-color:#7e22ce;
}

.hover\:bg-green-700:hover{
  background-color:#15803d;
}

.hover\:bg-orange-700:hover{
  background-color:#c2410c;
}

.hover\:bg-indigo-700:hover{
  background-color:#4338ca;
}
.rounded-lg{
  border-radius:.5rem;
}
.bg-amber-50{ background-color:#fffbeb; }
.bg-blue-100{ background-color:#d0edf3; }
.bg-gray-200{ background-color:#e2e0db; }
.bg-gray-600{ background-color:#4b5563; }
.bg-gray-900{ background-color:#111827; }
.bg-red-600{ background-color:#dc2626; }
.bg-red-700{ background-color:#b91c1c; }
.bg-green-700{ background-color:#15803d; }
.bg-amber-600{ background-color:#d97706; }
.border{ border-width:1px; }
.border-2{ border-width:2px; }
.border-amber-200{ border-color:#fde68a; }
.border-b{ border-bottom-width:1px; }
.border-b-2{ border-bottom-width:2px; }
.border-blue-600{ border-color:#0f4f60; }
.border-gray-200{ border-color:#e2e0db; }
.border-gray-300{ border-color:#d1d5db; }
.border-none{ border-style:none; }
.border-dashed{ border-style:dashed; }
.cursor-pointer{ cursor:pointer; }
.cursor-not-allowed{ cursor:not-allowed; }
.flex-col{ flex-direction:column; }
.focus\:not-sr-only:focus{
  padding:0;
}
.focus\:ring-2:focus{ box-shadow:0 0 0 2px; }
.focus\:ring-blue-500:focus{ --tw-ring-color:#145b6e; }
.h-16{ height:4rem; }
.hover\:bg-gray-100:hover{ background-color:#f3eee8; }
.hover\:bg-red-50:hover{ background-color:#fef2f2; }
.hover\:text-gray-700:hover{ color:#374151; }
.hover\:text-red-600:hover{ color:#dc2626; }
.hover\:text-white:hover{ color:#fff; }
.bottom-6{ bottom:1.5rem; }
.lg\:block{ display:block; }
.lg\:grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.lg\:hidden{ display:none; }
.lg\:px-8{ padding-left:2rem; padding-right:2rem; }
.lg\:table-cell,.md\:table-cell{ display:table-cell; }
/* unconditional sm:* duplicates removed — properly @media-wrapped versions below */
.max-w-7xl{ max-width:80rem; }
.min-h-screen{ min-height:100vh; }
.w-px{ width:1px; }
.mb-5{ margin-bottom:1.25rem; }
.mt-5{ margin-top:1.25rem; }
.-mx-4{ margin-left:-1rem; margin-right:-1rem; }
.mx-4{ margin-left:1rem; margin-right:1rem; }
.p-5{ padding:1.25rem; }
.pb-2{ padding-bottom:.5rem; }
.pl-9{ padding-left:2.25rem; }
.pr-4{ padding-right:1rem; }
.px-3{ padding-left:.75rem; padding-right:.75rem; }
.px-5{ padding-left:1.25rem; padding-right:1.25rem; }
.py-16{ padding-bottom:4rem; padding-top:4rem; }
.rounded-xl{ border-radius:.75rem; }
.shadow-2xl{ box-shadow:0 25px 50px -12px rgba(0,0,0,.25); }
.hover\:shadow-xl:hover,.shadow-xl{ box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04); }
.text-2xl{ font-size:1.5rem; line-height:2rem; }
.text-amber-700{ color:#b45309; }
.text-blue-600{ color:#0f4f60; }
.text-blue-700{ color:#0b3340; }
.text-gray-400{ color:#9ca3af; }
.text-lg{ font-size:1.125rem; line-height:1.75rem; }
.text-red-500{ color:#ef4444; }
.text-red-600{ color:#dc2626; }
.text-sm{ font-size:.875rem; line-height:1.25rem; }
.text-xs{ font-size:.75rem; line-height:1rem; }
.tracking-wider{ letter-spacing:.05em; }
.uppercase{ text-transform:uppercase; }
.transition-all{ transition-duration:.15s; transition-property:all; transition-timing-function:cubic-bezier(.4, 0, .2, 1); }
.transition-colors{ transition-duration:.15s; transition-property:color, background-color, border-color; transition-timing-function:cubic-bezier(.4, 0, .2, 1); }
.divide-y>:not([hidden])~:not([hidden]){ border-top-width:1px; }
.divide-gray-200>:not([hidden])~:not([hidden]){ border-color:#e2e0db; }
.gap-1\.5{ gap:.375rem; }
.h-1\.5{ height:.375rem; }
.mt-0\.5{ margin-top:.125rem; }
.p-1\.5{ padding:.375rem; }
.px-1\.5{ padding-left:.375rem; padding-right:.375rem; }
.py-0\.5{ padding-bottom:.125rem; padding-top:.125rem; }
.py-1\.5{ padding-bottom:.375rem; padding-top:.375rem; }
.py-2\.5{ padding-bottom:.625rem; padding-top:.625rem; }
.space-y-1\.5>:not([hidden])~:not([hidden]){ margin-top:.375rem; }
.left-1\/2{ left:50%; }
.top-1\/2{ top:50%; }
.-translate-x-1\/2{ transform:translateX(-50%); }
.-translate-y-1\/2{ transform:translateY(-50%); }
.bg-black\/50{ background-color:rgba(0,0,0,.5); }
.bg-black\/80{ background-color:rgba(0,0,0,.8); }
.focus\:ring-2:focus{ box-shadow:0 0 0 2px var(--ring-color, #145b6e); }
.focus\:ring-blue-500:focus{ --ring-color:#145b6e; box-shadow:0 0 0 2px #145b6e; }
.focus\:border-blue-500:focus{ border-color:#145b6e; }
.focus\:absolute:focus{ position:absolute; }
.focus\:bg-blue-600:focus{ background-color:#0f4f60; }
.focus\:left-4:focus{ left:1rem; }
.focus\:not-sr-only:focus{ height:auto; margin:0; overflow:visible; padding:inherit; position:static; width:auto; clip:auto; white-space:normal; }
.focus\:px-4:focus{ padding-left:1rem; padding-right:1rem; }
.focus\:py-2:focus{ padding-bottom:.5rem; padding-top:.5rem; }
.focus\:rounded:focus{ border-radius:.25rem; }
.focus\:text-white:focus{ color:#fff; }
.focus\:top-4:focus{ top:1rem; }
.focus\:z-50:focus{ z-index:50; }
.hover\:bg-blue-50:hover{ background-color:#eff6ff; }
.hover\:bg-blue-700:hover{ background-color:#0b3340; }
.hover\:bg-gray-50:hover{ background-color:#faf9f7; }
.hover\:bg-gray-200:hover{ background-color:#e2e0db; }
.hover\:bg-red-700:hover{ background-color:#b91c1c; }
.hover\:border-blue-400:hover{ border-color:#1a7a93; }
.hover\:text-blue-600:hover{ color:#0f4f60; }
.hover\:text-blue-700:hover{ color:#0b3340; }
.hover\:text-gray-600:hover{ color:#4b5563; }
.hover\:text-gray-900:hover{ color:#111827; }
.hover\:text-red-700:hover{ color:#b91c1c; }
.disabled\:cursor-not-allowed:disabled{ cursor:not-allowed; }
.disabled\:opacity-50:disabled{ opacity:.5; }

@media (min-width:640px){
  .sm\:flex{ display:flex; }
  .sm\:flex-initial{ flex:0 1 auto; }
  .sm\:flex-row{ flex-direction:row; }
  .sm\:grid-cols-2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .sm\:inline{ display:inline; }
  .sm\:items-center{ align-items:center; }
  .sm\:m-4{ margin:1rem; }
  .sm\:max-h-\[90vh\]{ max-height:90vh; }
  .sm\:max-w-6xl{ max-width:72rem; }
  .sm\:mx-0{ margin-left:0; margin-right:0; }
  .sm\:px-0{ padding-left:0; padding-right:0; }
  .sm\:px-6{ padding-left:1.5rem; padding-right:1.5rem; }
  .sm\:rounded-xl{ border-radius:.75rem; }
  .sm\:table-cell{ display:table-cell; }
  .sm\:w-64{ width:16rem; }
  .sm\:w-auto{ width:auto; }
}

@media (min-width:768px){
  .md\:table-cell{ display:table-cell; }
}

@media (min-width:1024px){
  .lg\:block{ display:block; }
  .lg\:grid-cols-3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .lg\:hidden{ display:none; }
  .lg\:px-8{ padding-left:2rem; padding-right:2rem; }
  .lg\:table-cell{ display:table-cell; }
}
.comment-item{
  border-radius:.5rem;
  margin:-.5rem;
  padding:.5rem;
  transition:background-color .3s ease;
}

.comment-highlighted{
  animation:comment-pulse 1.5s ease-in-out 2;
  background-color:rgba(59,130,246,.15);
}

@keyframes comment-pulse{
  0%,to{
    background-color:rgba(59,130,246,.15);
  }
  50%{
    background-color:rgba(59,130,246,.3);
  }
}
.family-avatar{
  border-radius:50%;
  flex-shrink:0;
  height:32px;
  object-fit:cover;
  width:32px;
}

.family-avatar-lg{
  height:48px;
  width:48px;
}

.family-avatar-xl{
  height:80px;
  width:80px;
}
.family-initials{
  align-items:center;
  border-radius:50%;
  color:#fff;
  display:flex;
  flex-shrink:0;
  font-size:12px;
  font-weight:600;
  height:32px;
  justify-content:center;
  width:32px;
}

.family-initials-lg{
  font-size:16px;
  height:48px;
  width:48px;
}

.family-initials-xl{
  font-size:24px;
  height:80px;
  width:80px;
}
.family-deceased .family-avatar,.family-deceased .family-initials{
  filter:grayscale(100%);
  opacity:.7;
}

.family-deceased .family-initials{
  background-color:#6b7280 !important;
}
.family-living-indicator{
  background-color:#10b981;
  border:2px solid #fff;
  border-radius:50%;
  bottom:0;
  height:8px;
  position:absolute;
  right:0;
  width:8px;
}
.tree-person-card{
  align-items:center;
  border-radius:8px;
  display:flex;
  gap:8px;
  padding:8px 12px;
  transition:background-color .15s ease;
}

.tree-person-card:hover{
  background-color:#f3eee8;
}
.tree-spouse-connector{
  color:#d1d5db;
  margin:0 4px;
}
.tree-partner{
  color:#374151;
}

.tree-ex-partner{
  color:#9ca3af;
  font-style:italic;
}
.hidden,.hidden.block,.hidden.flex,.hidden.grid,.hidden.inline-block,.hidden.inline-flex,.hidden.inline-grid,.hidden.table,.hidden.table-cell{
  display:none !important;
}


/*# sourceMappingURL=design-system.min.css.map */