@charset "UTF-8";.base-badge[data-v-2b0b76e0] {
  font-weight: 600;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
}
.base-badge__content[data-v-2b0b76e0] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.base-badge__label[data-v-2b0b76e0] {
  line-height: 1;
  white-space: nowrap;
}
.base-badge__icon[data-v-2b0b76e0] {
  flex-shrink: 0;
}
.base-badge__icon--left[data-v-2b0b76e0] {
  margin-right: 2px;
}
.base-badge__icon--right[data-v-2b0b76e0] {
  margin-left: 2px;
}
.base-badge--xs[data-v-2b0b76e0] {
  padding: 2px 4px;
  font-size: 0.625rem;
}
.base-badge--xs .base-badge__content[data-v-2b0b76e0] {
  gap: 2px;
}
.base-badge--sm[data-v-2b0b76e0] {
  padding: 3px 6px;
  font-size: 0.6875rem;
}
.base-badge--sm .base-badge__content[data-v-2b0b76e0] {
  gap: 3px;
}
.base-badge--md[data-v-2b0b76e0] {
  padding: 4px 10px;
  font-size: 0.75rem;
}
.base-badge--md .base-badge__content[data-v-2b0b76e0] {
  gap: 4px;
}
.base-badge--lg[data-v-2b0b76e0] {
  padding: 6px 12px;
  font-size: 0.875rem;
}
.base-badge--lg .base-badge__content[data-v-2b0b76e0] {
  gap: 6px;
}
.base-badge--status[data-v-2b0b76e0] {
  border-radius: 4px;
}
.base-badge--category[data-v-2b0b76e0] {
  border-radius: 12px;
}
.base-badge--priority[data-v-2b0b76e0] {
  border-radius: 3px;
}
.base-badge--frequency[data-v-2b0b76e0] {
  border-radius: 12px;
}
.base-badge--role[data-v-2b0b76e0] {
  border-radius: 16px;
}
.base-badge--indicator[data-v-2b0b76e0] {
  border-radius: 4px;
}
.base-badge--outline[data-v-2b0b76e0] {
  background: transparent !important;
  border: 1px solid currentColor;
}
.base-badge--dense[data-v-2b0b76e0] {
  padding-top: 2px;
  padding-bottom: 2px;
}
.base-badge--clickable[data-v-2b0b76e0] {
  cursor: pointer;
}
.base-badge--clickable[data-v-2b0b76e0]:hover {
  transform: scale(1.05);
  filter: brightness(1.1);
}
.base-badge--disabled[data-v-2b0b76e0] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
@media (max-width: 599px) {
.base-badge--responsive[data-v-2b0b76e0] {
    padding: 2px 4px;
    font-size: 0.625rem;
}
.base-badge--responsive .base-badge__content[data-v-2b0b76e0] {
    gap: 2px;
}
.base-badge--responsive .base-badge__icon[data-v-2b0b76e0] {
    font-size: 12px !important;
}
}
@media (min-width: 600px) and (max-width: 1023px) {
.base-badge--responsive[data-v-2b0b76e0] {
    padding: 3px 6px;
    font-size: 0.6875rem;
}
.base-badge--responsive .base-badge__content[data-v-2b0b76e0] {
    gap: 3px;
}
.base-badge--responsive .base-badge__icon[data-v-2b0b76e0] {
    font-size: 14px !important;
}
}
@media (min-width: 1024px) {
.base-badge--responsive[data-v-2b0b76e0] {
    padding: 4px 10px;
    font-size: 0.75rem;
}
.base-badge--responsive .base-badge__content[data-v-2b0b76e0] {
    gap: 4px;
}
.base-badge--responsive .base-badge__icon[data-v-2b0b76e0] {
    font-size: 14px !important;
}
}
@media (min-width: 1440px) {
.base-badge--responsive[data-v-2b0b76e0] {
    padding: 6px 12px;
    font-size: 0.875rem;
}
.base-badge--responsive .base-badge__content[data-v-2b0b76e0] {
    gap: 6px;
}
.base-badge--responsive .base-badge__icon[data-v-2b0b76e0] {
    font-size: 16px !important;
}
}.language-switcher[data-v-54505fde] .q-icon {
  font-size: 16px;
}
.language-switcher--icon-only[data-v-54505fde] .q-btn__content {
  padding: 0 4px;
}.language-item__name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.language-item__badge {
  font-size: 9px;
  padding: 2px 6px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.language-list--single {
  min-width: 160px;
  max-height: 400px;
  overflow-y: auto;
}
.language-list--single .q-item {
  min-height: 36px;
  padding: 4px 12px;
}
.language-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-width: 360px;
  max-width: 440px;
}
.language-column {
  flex: 1;
}
.language-column .q-list {
  padding: 0;
}
.language-column .q-item {
  min-height: 36px;
  padding: 4px 12px;
}
@media (max-width: 400px) {
.language-grid {
    grid-template-columns: 1fr;
    min-width: 200px;
}
}.brand-logo[data-v-1bf3108c] {
  width: var(--brand-logo-size, 160px);
  height: var(--brand-logo-size, 160px);
  border-radius: var(--radius-2xl, 24px);
  box-shadow: var(--shadow-lg, 0 20px 60px rgba(0, 0, 0, 0.12));
  opacity: 0;
  transform: scale(0.92);
  transform-origin: center;
  animation: brand-logo-enter-1bf3108c 700ms cubic-bezier(0.16, 1, 0.3, 1) 80ms forwards,brand-logo-breathe-1bf3108c 2.6s ease-in-out 900ms infinite;
}
.body--dark .brand-logo[data-v-1bf3108c] {
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}
@keyframes brand-logo-enter-1bf3108c {
from {
    opacity: 0;
    transform: scale(0.92);
}
to {
    opacity: 1;
    transform: scale(1);
}
}
@keyframes brand-logo-breathe-1bf3108c {
0%, 100% {
    transform: scale(1);
}
50% {
    transform: scale(1.04);
}
}
@media (max-width: 767px) {
.brand-logo[data-v-1bf3108c] {
    width: var(--brand-logo-mobile-size, 120px);
    height: var(--brand-logo-mobile-size, 120px);
}
}
@media (prefers-reduced-motion: reduce) {
.brand-logo[data-v-1bf3108c] {
    animation: none;
    opacity: 1;
    transform: none;
}
}
.linear-progress[data-v-2e48f97e] {
  --linear-progress-height: 4px;
  --linear-progress-color: var(--q-primary, #1A4D8F);
  --linear-progress-track: color-mix(in srgb, var(--linear-progress-color) 18%, transparent);
  position: relative;
  width: 100%;
  height: var(--linear-progress-height);
  overflow: hidden;
  background-color: var(--linear-progress-track);
  border-radius: 999px;
}

/* White on translucent white — use over brand-gradient / dark hero. */
.linear-progress--on-color[data-v-2e48f97e] {
  --linear-progress-color: rgba(255, 255, 255, 0.96);
  --linear-progress-track: rgba(255, 255, 255, 0.18);
}
.linear-progress--fixed-top[data-v-2e48f97e] {
  position: fixed;
  top: env(safe-area-inset-top, 0);
  left: 0;
  right: 0;
  z-index: 9999;
  border-radius: 0;
}
.linear-progress__bar[data-v-2e48f97e] {
  position: absolute;
  top: 0;
  bottom: 0;
  background-color: var(--linear-progress-color);
  border-radius: 999px;
  will-change: left, right, width;
}

/* M3 indeterminate: two indicators chasing each other, one cycle = 2.1s. */
.linear-progress__bar--primary[data-v-2e48f97e] {
  animation: linear-progress-primary-2e48f97e 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
}
.linear-progress__bar--secondary[data-v-2e48f97e] {
  animation: linear-progress-secondary-2e48f97e 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
  animation-delay: 1.15s;
}
@keyframes linear-progress-primary-2e48f97e {
0% {
    left: -35%;
    right: 100%;
}
60% {
    left: 100%;
    right: -90%;
}
100% {
    left: 100%;
    right: -90%;
}
}
@keyframes linear-progress-secondary-2e48f97e {
0% {
    left: -200%;
    right: 100%;
}
60% {
    left: 107%;
    right: -8%;
}
100% {
    left: 107%;
    right: -8%;
}
}
/* Determinate: smooth width transition. */
.linear-progress__bar--determinate[data-v-2e48f97e] {
  left: 0;
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
.linear-progress--indeterminate .linear-progress__bar--primary[data-v-2e48f97e] {
    left: 0;
    right: 0;
    opacity: 0.55;
    animation: none;
}
.linear-progress--indeterminate .linear-progress__bar--secondary[data-v-2e48f97e] {
    display: none;
}
}
.upload-progress-band[data-v-d4591487] {
  /* Full-area overlay on the parent (parent must be position: relative
     or have its own containing block). Subtle dim layer so the image
     preview underneath stays visible — the SSO band is opaque-feeling
     because there's no image behind it; here we let the photo show. */
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  pointer-events: none;
  overflow: hidden;
  isolation: isolate;
  background: rgba(0, 0, 0, 0.18);
}

/* Bouncing progress band — uses the brand gradient with low alpha,
   blurred for the "neon glow under glass" feel. Travels left →
   right → left with ease-in-out so the speed peaks in the middle
   and slows at the edges (matching SsoButton). */
.upload-progress-band__sweep[data-v-d4591487] {
  --upload-progress-start: var(--brand-gradient-start, #1A4D8F);
  --upload-progress-end:   var(--brand-gradient-end,   #1F9DA0);

  position: absolute;
  top: 0;
  bottom: 0;
  left: -50%;
  width: 50%;
  z-index: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--upload-progress-start) 45%, transparent) 30%,
    color-mix(in srgb, var(--upload-progress-end)   55%, transparent) 50%,
    color-mix(in srgb, var(--upload-progress-start) 45%, transparent) 70%,
    transparent 100%
  );
  filter: blur(10px);
  animation: upload-progress-band-bounce-d4591487 1.8s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  will-change: transform;
}

/* Variant hook — currently identical, kept for future styling. */
.upload-progress-band--processing .upload-progress-band__sweep[data-v-d4591487] {
  --upload-progress-start: var(--brand-gradient-start, #1A4D8F);
  --upload-progress-end:   var(--brand-gradient-end,   #1F9DA0);
}
@keyframes upload-progress-band-bounce-d4591487 {
0%   { transform: translateX(0);
}
50%  { transform: translateX(300%);
}
100% { transform: translateX(0);
}
}

/* Reduced-motion: park the band at center with a steady glow
   instead of animating. Mirrors SsoButton's fallback. */
@media (prefers-reduced-motion: reduce) {
.upload-progress-band__sweep[data-v-d4591487] {
    animation: none;
    left: 25%;
    width: 50%;
    opacity: 0.6;
    filter: blur(14px);
}
}
.upload-progress-band__label[data-v-d4591487] {
  position: relative;
  z-index: 1;
  margin: 0 0 8px;
  padding: 2px 10px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.2px;
}

/* Deterministic filled bar (shown when progress prop is set).
   Anchored to the very bottom of the tile, grows left→right. */
.upload-progress-band__bar[data-v-d4591487] {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  z-index: 2;
  background: linear-gradient(
    90deg,
    var(--brand-gradient-start, #1A4D8F),
    var(--brand-gradient-end, #1F9DA0)
  );
  border-radius: 0 2px 0 0;
  transition: width 0.1s linear;
  will-change: width;
}
.base-tag {
  transition: all 0.2s ease;
}
.base-tag.tag-clickable {
  cursor: pointer;
}
.base-tag.tag-clickable:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.tag-variant-status {
  font-weight: 500;
}
.tag-variant-priority {
  font-weight: 600;
}
.tag-variant-category {
  font-weight: 400;
}
.tag-variant-role {
  font-weight: 500;
  text-transform: capitalize;
}
.tag-variant-frequency {
  font-weight: 500;
}.dark-mode-toggle[data-v-1fbb26b1] {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs, 4px);
}
.dark-mode-toggle__icon[data-v-1fbb26b1] {
  opacity: 0.8;
  transition: opacity var(--transition-fast, 0.15s ease);
}
.dark-mode-toggle--header .dark-mode-toggle__icon[data-v-1fbb26b1] {
  color: white;
}
.dark-mode-toggle--sidebar .dark-mode-toggle__icon[data-v-1fbb26b1] {
  color: var(--text-color-muted, #6c757d);
}
.dark-mode-toggle--default .dark-mode-toggle__icon[data-v-1fbb26b1] {
  color: var(--text-color-secondary, #495057);
}
.dark-mode-toggle--compact[data-v-1fbb26b1] {
  gap: 2px;
}
.body--dark .dark-mode-toggle[data-v-1fbb26b1] .q-toggle__track {
  background: rgba(255, 255, 255, 0.3) !important;
}.legal-page[data-v-d4a152f1] {
  min-height: 100vh;
  background: linear-gradient(135deg, #f5f7fa 0%, #f0f2f5 100%);
  padding: var(--spacing-xl) 0;
}
@media (max-width: 768px) {
.legal-page[data-v-d4a152f1] {
    padding: var(--spacing-lg) 0;
}
}
.body--dark .legal-page[data-v-d4a152f1] {
  background: linear-gradient(135deg, #1a1f2e 0%, #151922 100%);
}
.legal-container[data-v-d4a152f1] {
  width: 100%;
  max-width: 1100px;
  padding: 0 var(--spacing-xl);
}
@media (max-width: 1200px) {
.legal-container[data-v-d4a152f1] {
    max-width: 900px;
    padding: 0 var(--spacing-lg);
}
}
@media (max-width: 768px) {
.legal-container[data-v-d4a152f1] {
    max-width: 100%;
    padding: 0 var(--spacing-md);
}
}
@media (max-width: 480px) {
.legal-container[data-v-d4a152f1] {
    padding: 0 var(--spacing-sm);
}
}
.legal-card[data-v-d4a152f1] {
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04), 0 1px 4px rgba(0, 0, 0, 0.02);
}
@media (max-width: 480px) {
.legal-card[data-v-d4a152f1] {
    border-radius: var(--radius-md);
}
}
.body--dark .legal-card[data-v-d4a152f1] {
  background: #1e2433;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.1);
}
.legal-header[data-v-d4a152f1] {
  padding: 3rem 3.5rem 2rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.01), transparent);
}
@media (max-width: 768px) {
.legal-header[data-v-d4a152f1] {
    padding: 2rem 2rem 1.5rem;
}
}
@media (max-width: 480px) {
.legal-header[data-v-d4a152f1] {
    padding: 1.5rem 1.25rem 1.25rem;
}
}
.legal-header .text-h5[data-v-d4a152f1] {
  font-size: 2rem;
  line-height: 1.3;
  color: var(--text-color);
  margin-bottom: 0.75rem;
}
@media (max-width: 768px) {
.legal-header .text-h5[data-v-d4a152f1] {
    font-size: 1.75rem;
}
}
@media (max-width: 480px) {
.legal-header .text-h5[data-v-d4a152f1] {
    font-size: 1.5rem;
}
}
.legal-header .text-body2[data-v-d4a152f1] {
  font-size: 0.95rem;
  opacity: 0.7;
}
@media (max-width: 480px) {
.legal-header .text-body2[data-v-d4a152f1] {
    font-size: 0.875rem;
}
}
.body--dark .legal-header[data-v-d4a152f1] {
  border-bottom-color: rgba(255, 255, 255, 0.06);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.02), transparent);
}
.legal-intro[data-v-d4a152f1] {
  padding: 2rem 3.5rem 1rem;
}
@media (max-width: 768px) {
.legal-intro[data-v-d4a152f1] {
    padding: 1.5rem 2rem 1rem;
}
}
@media (max-width: 480px) {
.legal-intro[data-v-d4a152f1] {
    padding: 1.25rem 1.25rem 0.75rem;
}
}
.legal-intro[data-v-d4a152f1] p {
  font-size: 1rem;
  line-height: 1.8;
  color: rgba(0, 0, 0, 0.87);
  margin: 0;
}
@media (max-width: 768px) {
.legal-intro[data-v-d4a152f1] p {
    font-size: 0.9375rem;
    line-height: 1.7;
}
}
@media (max-width: 480px) {
.legal-intro[data-v-d4a152f1] p {
    font-size: 0.9rem;
    line-height: 1.65;
}
}
.body--dark .legal-intro[data-v-d4a152f1] p {
  color: rgba(255, 255, 255, 0.87);
}
.legal-content[data-v-d4a152f1] {
  padding: 3rem 3.5rem;
}
@media (max-width: 768px) {
.legal-content[data-v-d4a152f1] {
    padding: 2rem 2rem;
}
}
@media (max-width: 480px) {
.legal-content[data-v-d4a152f1] {
    padding: 1.5rem 1.25rem;
}
}
.legal-content[data-v-d4a152f1] .legal-section {
  margin-bottom: 2.5rem;
}
@media (max-width: 768px) {
.legal-content[data-v-d4a152f1] .legal-section {
    margin-bottom: 2rem;
}
}
.legal-content[data-v-d4a152f1] .legal-section:last-child {
  margin-bottom: 0;
}
.legal-content[data-v-d4a152f1] .legal-section h2 {
  font-size: 1.35rem;
  line-height: 1.4;
  color: var(--text-color);
  margin-bottom: 1rem;
}
@media (max-width: 768px) {
.legal-content[data-v-d4a152f1] .legal-section h2 {
    font-size: 1.25rem;
    margin-bottom: 0.875rem;
}
}
@media (max-width: 480px) {
.legal-content[data-v-d4a152f1] .legal-section h2 {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
}
}
.legal-content[data-v-d4a152f1] .section-content {
  font-size: 1rem;
  line-height: 1.8;
  color: rgba(0, 0, 0, 0.87);
}
@media (max-width: 768px) {
.legal-content[data-v-d4a152f1] .section-content {
    font-size: 0.9375rem;
    line-height: 1.7;
}
}
@media (max-width: 480px) {
.legal-content[data-v-d4a152f1] .section-content {
    font-size: 0.9rem;
    line-height: 1.65;
}
}
.legal-content[data-v-d4a152f1] .section-content a {
  color: var(--q-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: all 0.2s ease;
}
.legal-content[data-v-d4a152f1] .section-content a:hover {
  text-decoration-thickness: 2px;
}
.legal-content[data-v-d4a152f1] .section-content strong {
  font-weight: 600;
  color: var(--text-color);
}
.legal-content[data-v-d4a152f1] .section-content code {
  background-color: rgba(0, 0, 0, 0.05);
  padding: 2px 6px;
  border-radius: var(--radius-xs);
  font-family: var(--font-mono);
  font-size: 0.9em;
}
.legal-content[data-v-d4a152f1] .section-content ul,
.legal-content[data-v-d4a152f1] .section-content ol {
  padding-left: 1.75rem;
  margin: 1.25rem 0;
}
@media (max-width: 480px) {
.legal-content[data-v-d4a152f1] .section-content ul,
  .legal-content[data-v-d4a152f1] .section-content ol {
    padding-left: 1.5rem;
    margin: 1rem 0;
}
}
.legal-content[data-v-d4a152f1] .section-content li {
  margin-bottom: 0.625rem;
  padding-left: 0.25rem;
}
.legal-content[data-v-d4a152f1] .section-content li:last-child {
  margin-bottom: 0;
}
.legal-content[data-v-d4a152f1] .section-content p {
  margin-bottom: 1rem;
}
.legal-content[data-v-d4a152f1] .section-content p:last-child {
  margin-bottom: 0;
}
.legal-content[data-v-d4a152f1] .section-content br {
  display: block;
  margin: 0.5em 0;
}
.legal-content[data-v-d4a152f1] .contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.legal-content[data-v-d4a152f1] .contact-list li {
  padding: var(--spacing-sm) 0;
  display: flex;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
}
.legal-content[data-v-d4a152f1] .contact-list a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: all 0.2s ease;
}
.legal-content[data-v-d4a152f1] .contact-list a:hover {
  text-decoration-thickness: 2px;
}
.body--dark .legal-content[data-v-d4a152f1] .section-content {
  color: rgba(255, 255, 255, 0.87);
}
.body--dark .legal-content[data-v-d4a152f1] .section-content code {
  background-color: rgba(255, 255, 255, 0.1);
}
.legal-footer[data-v-d4a152f1] {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding: 2rem 3.5rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.01), transparent);
}
@media (max-width: 768px) {
.legal-footer[data-v-d4a152f1] {
    padding: 1.75rem 2rem;
}
}
@media (max-width: 480px) {
.legal-footer[data-v-d4a152f1] {
    padding: 1.5rem 1.25rem;
}
}
.body--dark .legal-footer[data-v-d4a152f1] {
  border-top-color: rgba(255, 255, 255, 0.06);
  background: linear-gradient(to top, rgba(255, 255, 255, 0.02), transparent);
}
.legal-meta[data-v-d4a152f1] {
  color: var(--text-color-muted);
}
.legal-version-history[data-v-d4a152f1] {
  color: var(--brand-primary-fg, #1976d2);
  text-decoration: none;
}
.legal-version-history[data-v-d4a152f1]:hover, .legal-version-history[data-v-d4a152f1]:focus-visible {
  text-decoration: underline;
}
.back-link[data-v-d4a152f1] {
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-sm);
  transition: all 0.2s ease;
}
.back-link[data-v-d4a152f1]:hover {
  background: rgba(var(--q-primary-rgb), 0.08);
  transform: translateX(-2px);
}
@media (max-width: 480px) {
.back-link[data-v-d4a152f1] {
    font-size: 0.875rem;
}
}
/* Styles are inherited from LegalPage component */
.sidebar-aria-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  min-height: 0;
}
.sidebar-menu {
  display: flex;
  flex-direction: column;
  background: var(--sidebar-bg, #f5f7fa);
  border-right: 1px solid var(--sidebar-border, #e0e0e0);
}
.sidebar-menu .sidebar-brand {
  display: flex;
  align-items: center;
  padding: var(--spacing-md, 16px);
  min-height: 64px;
  border-bottom: 1px solid var(--sidebar-border, #e0e0e0);
  gap: var(--spacing-sm, 8px);
}
.sidebar-menu .sidebar-brand .brand-text {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sidebar-text, #1e1e1e);
  cursor: pointer;
  white-space: normal;
  overflow-wrap: break-word;
  line-height: 1.2;
  flex: 1 1 auto;
  min-width: 0;
}
.sidebar-menu .sidebar-nav {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: var(--spacing-sm, 8px);
}
.sidebar-menu .sidebar-nav__scrollable {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
}
.sidebar-menu .sidebar-nav__sticky {
  flex-shrink: 0;
  border-top: 1px solid var(--sidebar-border, #e0e0e0);
  padding-top: var(--spacing-xs, 4px);
  margin-top: var(--spacing-xs, 4px);
}
.sidebar-menu .sidebar-header-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sidebar-text-muted, #6b7280);
  padding: 8px 16px 4px;
}
.sidebar-menu .sidebar-separator {
  margin: var(--spacing-sm, 8px) 0;
}
.sidebar-menu .sidebar-item {
  border-radius: 8px;
  margin: 2px 0;
  min-height: 44px;
  color: var(--sidebar-text, #1e1e1e);
  transition: background-color 0.2s ease;
}
.sidebar-menu .sidebar-item:hover {
  background: var(--sidebar-hover, rgba(0, 0, 0, 0.05));
}
.sidebar-menu .sidebar-item.active, .sidebar-menu .sidebar-item.sidebar-item-active {
  background: var(--sidebar-active-bg, rgba(26, 77, 143, 0.1));
}
.sidebar-menu .sidebar-item.active .q-icon, .sidebar-menu .sidebar-item.sidebar-item-active .q-icon {
  color: var(--q-primary, #1a4d8f);
}
.sidebar-menu .sidebar-item.active .sidebar-label, .sidebar-menu .sidebar-item.sidebar-item-active .sidebar-label {
  font-weight: 600;
}
.sidebar-menu .sidebar-item .sidebar-icon {
  min-width: 40px;
}
.sidebar-menu .sidebar-item .sidebar-icon .q-icon {
  font-size: 1.25rem;
  color: var(--sidebar-icon, #4b4f55);
}
.sidebar-menu .sidebar-item .sidebar-label {
  font-size: 0.875rem;
}
.sidebar-menu .sidebar-group .q-expansion-item__container > .q-item {
  border-radius: 8px;
  margin: 2px 0;
  min-height: 44px;
  color: var(--sidebar-text, #1e1e1e);
  transition: background-color 0.2s ease;
}
.sidebar-menu .sidebar-group .q-expansion-item__container > .q-item:hover {
  background: var(--sidebar-hover, rgba(0, 0, 0, 0.05));
}
.sidebar-menu .sidebar-group .q-expansion-item__container > .q-item .q-item__section--avatar {
  min-width: 40px;
}
.sidebar-menu .sidebar-group .q-expansion-item__container > .q-item .q-item__section--avatar .q-icon {
  font-size: 1.25rem;
  color: var(--sidebar-icon, #4b4f55);
}
.sidebar-menu .sidebar-group .q-expansion-item__container > .q-item .q-item__label {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--sidebar-text-muted, #6b7280);
}
.sidebar-menu .sidebar-group .sidebar-group__header--active .q-item__label {
  color: var(--q-primary, #1a4d8f);
}
.sidebar-menu .sidebar-group .sidebar-group__header--active .q-item__section--avatar .q-icon {
  color: var(--q-primary, #1a4d8f);
}
.sidebar-menu .sidebar-group .q-expansion-item__content .sidebar-group__child {
  padding-left: 20px;
}
.sidebar-menu .sidebar-group-mini.active .sidebar-icon .q-icon {
  color: var(--q-primary, #1a4d8f);
}
.sidebar-menu .sidebar-footer {
  margin-top: auto;
  padding: var(--spacing-sm, 8px);
  border-top: 1px solid var(--sidebar-border, #e0e0e0);
}
.sidebar-menu .sidebar-footer .sidebar-footer-item {
  margin: 2px 0;
}
.body--dark .mobile-sidebar-toggle {
  background: var(--sidebar-bg-dark, #1a1d21);
}
.body--dark .mobile-sidebar-toggle .hamburger-bar {
  background: var(--sidebar-text-dark, #f5f5f5);
}
.body--dark .sidebar-menu {
  background: var(--sidebar-bg-dark, #1a1d21);
  border-right-color: var(--sidebar-border-dark, #2d3748);
}
.body--dark .sidebar-menu .sidebar-brand {
  border-bottom-color: var(--sidebar-border-dark, #2d3748);
}
.body--dark .sidebar-menu .sidebar-brand .brand-text {
  color: var(--sidebar-text-dark, #f5f5f5);
}
.body--dark .sidebar-menu .sidebar-header-label {
  color: var(--sidebar-text-muted-dark, #9ca3af);
}
.body--dark .sidebar-menu .sidebar-item {
  color: var(--sidebar-text-dark, #f5f5f5);
}
.body--dark .sidebar-menu .sidebar-item:hover {
  background: var(--sidebar-hover-dark, rgba(255, 255, 255, 0.05));
}
.body--dark .sidebar-menu .sidebar-item.active, .body--dark .sidebar-menu .sidebar-item.sidebar-item-active {
  background: var(--sidebar-active-bg-dark, rgba(255, 255, 255, 0.1));
}
.body--dark .sidebar-menu .sidebar-item .sidebar-icon .q-icon {
  color: var(--sidebar-icon-dark, #9ca3af);
}
.body--dark .sidebar-menu .sidebar-group .q-expansion-item__container > .q-item {
  color: var(--sidebar-text-dark, #f5f5f5);
}
.body--dark .sidebar-menu .sidebar-group .q-expansion-item__container > .q-item:hover {
  background: var(--sidebar-hover-dark, rgba(255, 255, 255, 0.05));
}
.body--dark .sidebar-menu .sidebar-group .q-expansion-item__container > .q-item .q-item__label {
  color: var(--sidebar-text-muted-dark, #9ca3af);
}
.body--dark .sidebar-menu .sidebar-group .q-expansion-item__container > .q-item .q-item__section--avatar .q-icon {
  color: var(--sidebar-icon-dark, #9ca3af);
}
.body--dark .sidebar-menu .sidebar-footer {
  border-top-color: var(--sidebar-border-dark, #2d3748);
}
.body--dark .sidebar-menu .sidebar-nav__sticky {
  border-top-color: var(--sidebar-border-dark, #2d3748);
}
.fade-slide-enter-active,
.fade-slide-leave-active {
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.fade-slide-enter-from,
.fade-slide-leave-to {
  opacity: 0;
  transform: translateX(-10px);
}
.fade-slide-enter-to,
.fade-slide-leave-from {
  opacity: 1;
  transform: translateX(0);
}
.sidebar-group-flyout {
  min-width: 200px;
  padding: 4px;
}
.sidebar-group-flyout .q-item {
  border-radius: 8px;
  min-height: 40px;
}
.sidebar-group-flyout .q-item.active .q-icon {
  color: var(--q-primary, #1a4d8f);
}
.sidebar-group-flyout .q-item.active .q-item__section:not(.q-item__section--avatar) {
  font-weight: 600;
}.page-cta[data-v-809b2a80] {
  --focus-color: var(--focus-color-on-brand);
}
.page-cta[data-v-809b2a80] .m3-btn:focus-visible,
.page-cta[data-v-809b2a80] a:focus-visible,
.page-cta[data-v-809b2a80] button:focus-visible,
.page-cta[data-v-809b2a80] select:focus-visible,
.page-cta[data-v-809b2a80] input:focus-visible {
  outline-color: var(--focus-color-on-brand);
}
.page-cta[data-v-809b2a80] {
  padding: var(--section-padding);
  background: var(--bg-dark-gradient);
  text-align: center;
  color: white;
}
.body--dark .page-cta[data-v-809b2a80] {
  background: var(--bg-dark-gradient);
  color: white;
}
.cta-content[data-v-809b2a80] {
  max-width: 700px;
  margin: 0 auto;
}
.cta-logo[data-v-809b2a80] {
  width: 80px;
  height: 80px;
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-lg);
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3));
}
.cta-title[data-v-809b2a80] {
  font-size: var(--font-size-4xl);
  font-weight: 700;
  color: white;
  margin: 0 0 var(--spacing-md) 0;
  line-height: 1.2;
}
.cta-subtitle[data-v-809b2a80] {
  font-size: var(--font-size-lg);
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 var(--spacing-2xl) 0;
  line-height: 1.6;
}
.cta-actions[data-v-809b2a80] {
  display: flex;
  gap: var(--spacing-md);
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
.page-cta[data-v-809b2a80] {
    padding: var(--spacing-3xl) var(--spacing-md);
}
.cta-logo[data-v-809b2a80] {
    width: 64px;
    height: 64px;
}
.cta-title[data-v-809b2a80] {
    font-size: var(--font-size-2xl);
}
.cta-subtitle[data-v-809b2a80] {
    font-size: var(--font-size-base);
}
}
[data-v-809b2a80] .m3-btn--filled {
  background: var(--btn-on-brand-bg) !important;
  color: var(--btn-on-brand-fg) !important;
}.page-hero[data-v-c20b2488] {
  --focus-color: var(--focus-color-on-brand);
}
.page-hero[data-v-c20b2488] .m3-btn:focus-visible,
.page-hero[data-v-c20b2488] a:focus-visible,
.page-hero[data-v-c20b2488] button:focus-visible,
.page-hero[data-v-c20b2488] select:focus-visible,
.page-hero[data-v-c20b2488] input:focus-visible {
  outline-color: var(--focus-color-on-brand);
}
.page-hero[data-v-c20b2488] {
  min-height: var(--hero-min-height, 50vh);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--brand-gradient-surface);
  padding: var(--spacing-3xl) var(--spacing-lg);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.page-hero[data-v-c20b2488]::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
  animation: pulse-c20b2488 15s ease-in-out infinite;
}
@keyframes pulse-c20b2488 {
0%, 100% {
    transform: scale(1);
    opacity: 0.5;
}
50% {
    transform: scale(1.1);
    opacity: 0.3;
}
}
.hero-content[data-v-c20b2488] {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
}
.hero-logo-container[data-v-c20b2488] {
  margin-bottom: var(--spacing-lg);
}
.hero-title[data-v-c20b2488] {
  font-size: var(--font-size-5xl);
  font-weight: 700;
  color: var(--on-brand);
  margin: 0 0 var(--spacing-md) 0;
  line-height: 1.2;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.hero-subtitle[data-v-c20b2488] {
  font-size: var(--font-size-xl);
  color: var(--on-brand-secondary);
  margin: 0 0 var(--spacing-lg) 0;
  line-height: 1.6;
}
.hero-additional[data-v-c20b2488] {
  font-size: var(--font-size-base);
  color: var(--on-brand-secondary);
  margin: 0 0 var(--spacing-2xl) 0;
  font-style: italic;
}
.hero-slot[data-v-c20b2488] {
  margin-top: var(--spacing-lg);
}
@media (max-width: 767px) {
.page-hero[data-v-c20b2488] {
    padding: var(--spacing-3xl) var(--spacing-md);
}
.hero-logo-container[data-v-c20b2488] {
    margin-bottom: var(--spacing-md);
}
.hero-title[data-v-c20b2488] {
    font-size: var(--font-size-3xl);
}
.hero-subtitle[data-v-c20b2488] {
    font-size: var(--font-size-base);
}
.hero-additional[data-v-c20b2488] {
    font-size: var(--font-size-sm);
}
}
[data-v-c20b2488] .m3-btn--filled {
  background: var(--btn-on-brand-bg) !important;
  color: var(--btn-on-brand-fg) !important;
}.page-section[data-v-b15ba7a7] {
  padding: var(--section-padding);
}
.section--light[data-v-b15ba7a7] {
  background: var(--bg-light-gradient);
  color: var(--text-color);
}
.body--dark .section--light[data-v-b15ba7a7] {
  background: var(--bg-light-gradient);
  color: var(--text-color);
}
.section--dark[data-v-b15ba7a7] {
  background: var(--bg-dark-gradient);
  color: var(--on-brand);
}
.body--dark .section--dark[data-v-b15ba7a7] {
  background: var(--bg-dark-gradient);
  color: var(--on-brand);
}
.section--gradient[data-v-b15ba7a7] {
  background: var(--brand-gradient-surface);
  color: var(--on-brand);
  --focus-color: var(--focus-color-on-brand);
}
.section--gradient[data-v-b15ba7a7] .m3-btn:focus-visible,
.section--gradient[data-v-b15ba7a7] a:focus-visible,
.section--gradient[data-v-b15ba7a7] button:focus-visible,
.section--gradient[data-v-b15ba7a7] select:focus-visible,
.section--gradient[data-v-b15ba7a7] input:focus-visible {
  outline-color: var(--focus-color-on-brand);
}
.body--dark .section--gradient[data-v-b15ba7a7] {
  background: var(--brand-gradient-surface);
  color: var(--on-brand);
}
.section--gradient[data-v-b15ba7a7] .m3-btn--filled {
  background: var(--btn-on-brand-bg) !important;
  color: var(--btn-on-brand-fg) !important;
}
.section-container[data-v-b15ba7a7] {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
}
.section-title[data-v-b15ba7a7] {
  font-size: var(--font-size-4xl);
  font-weight: 700;
  margin: 0 0 var(--spacing-3xl) 0;
  color: inherit;
  line-height: 1.2;
}
.section-title--white[data-v-b15ba7a7] {
  color: var(--on-brand) !important;
}
.section--light .section-title[data-v-b15ba7a7] {
  color: var(--text-color);
}
.section--dark .section-title[data-v-b15ba7a7],
.section--gradient .section-title[data-v-b15ba7a7] {
  color: var(--on-brand);
}
@media (max-width: 767px) {
.page-section[data-v-b15ba7a7] {
    padding: var(--spacing-3xl) var(--spacing-md);
}
.section-container[data-v-b15ba7a7] {
    padding: 0;
}
.section-title[data-v-b15ba7a7] {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-2xl);
}
}.content-loading-page[data-v-56fef241] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
  min-height: 50dvh;
  padding: var(--spacing-3xl) var(--spacing-lg);
}
.loading-container[data-v-56fef241] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
  max-width: 400px;
  text-align: center;
}
.loading-text[data-v-56fef241] {
  font-size: var(--font-size-base, 1rem);
  color: var(--text-color-muted, var(--text-color-secondary));
  margin: 0;
  animation: loading-text-pulse-56fef241 1.6s ease-in-out infinite;
}
@keyframes loading-text-pulse-56fef241 {
0%, 100% {
    opacity: 0.6;
}
50% {
    opacity: 1;
}
}.content-error-page[data-v-43a2c21c] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: var(--spacing-3xl) var(--spacing-lg);
  min-height: 60dvh;
}
.error-container[data-v-43a2c21c] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
  max-width: 420px;
  text-align: center;
}
.error-icon-wrap[data-v-43a2c21c] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--input-bg, rgba(127, 127, 127, 0.08));
  margin-bottom: var(--spacing-sm);
}
.error-icon-wrap .error-icon[data-v-43a2c21c] {
  font-size: 48px;
  color: var(--text-color-muted, #686d73);
  opacity: 0.85;
}
.error-title[data-v-43a2c21c] {
  font-size: var(--font-size-xl, 1.25rem);
  font-weight: 600;
  color: var(--text-color);
  margin: 0;
  line-height: 1.3;
}
.error-message[data-v-43a2c21c] {
  font-size: var(--font-size-base, 1rem);
  color: var(--text-color-secondary, var(--text-color-muted));
  margin: 0;
  line-height: 1.5;
}
.error-hint[data-v-43a2c21c] {
  font-size: var(--font-size-sm, 0.875rem);
  color: var(--text-color-muted, #686d73);
  margin: 0;
  font-style: italic;
  opacity: 0.85;
}
.retry-btn[data-v-43a2c21c] {
  margin-top: var(--spacing-sm);
}
@media (max-width: 599px) {
.content-error-page[data-v-43a2c21c] {
    min-height: 50vh;
    min-height: 50dvh;
    padding: var(--spacing-2xl, 2rem) var(--spacing-md, 1rem);
}
.error-icon-wrap[data-v-43a2c21c] {
    width: 80px;
    height: 80px;
}
.error-icon-wrap .error-icon[data-v-43a2c21c] {
    font-size: 40px;
}
.error-title[data-v-43a2c21c] {
    font-size: var(--font-size-lg, 1.125rem);
}
.error-message[data-v-43a2c21c] {
    font-size: var(--font-size-sm, 0.875rem);
}
}:root {
  scroll-padding-top: var(--pinned-top-inset, 0px);
  scroll-padding-bottom: calc(max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px)) + var(--sticky-actions-inset, 0px));
}
.scroll-container {
  scroll-padding-top: var(--pinned-top-inset, 0px);
  scroll-padding-bottom: calc(max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px)) + var(--sticky-actions-inset, 0px));
}
body.has-env-banner {
  --env-banner-height: calc(32px + env(safe-area-inset-top, 0px));
}
body.has-env-banner .q-header,
body.has-env-banner .mobile-app-status-bar-spacer,
body.has-env-banner .q-drawer {
  top: var(--env-banner-height) !important;
}
body.has-env-banner .q-drawer {
  height: calc(100vh - var(--env-banner-height)) !important;
  max-height: calc(100vh - var(--env-banner-height)) !important;
}
body.has-env-banner .q-page-container {
  margin-top: var(--env-banner-height);
}
body.has-cookie-banner .q-dialog__inner--bottom {
  bottom: calc(var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
  transition: bottom 0.2s ease;
}
body.has-cookie-banner {
  --cookie-banner-height: 220px;
}
@media (max-width: 768px) {
body.has-cookie-banner {
    --cookie-banner-height: 200px;
}
}
body.has-cookie-banner .q-page-container {
  padding-bottom: calc(var(--cookie-banner-height) + var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
}
.layout-authenticated .loading-overlay, .layout-public .loading-overlay,
.layout-guest .loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--overlay-bg, rgba(0, 0, 0, 0.5));
  z-index: var(--z-modal, 9000);
  display: flex;
  align-items: center;
  justify-content: center;
}
.layout-authenticated .active-route, .layout-public .active-route,
.layout-guest .active-route {
  border: 2px solid var(--nav-active-border, currentColor) !important;
  border-radius: var(--radius-sm, 4px) !important;
}
.layout-authenticated .content-hidden, .layout-public .content-hidden,
.layout-guest .content-hidden {
  opacity: 0;
  pointer-events: none;
}
.layout-authenticated .route-loading, .layout-public .route-loading,
.layout-guest .route-loading {
  min-height: 200px;
}
.layout-authenticated .route-loading-state, .layout-public .route-loading-state,
.layout-guest .route-loading-state {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 48px 0;
}
.layout-public .q-header,
.layout-guest .q-header {
  background: var(--header-bg, linear-gradient(135deg, #1a4d8f 0%, #1f9da0 100%));
  box-shadow: var(--header-shadow, 0 2px 8px rgba(0, 0, 0, 0.15));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--header-border, rgba(255, 255, 255, 0.1));
  transition: all var(--transition-default, 0.3s ease);
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  overflow: hidden !important;
}
.layout-public .q-header .q-toolbar,
.layout-guest .q-header .q-toolbar {
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  padding: var(--header-padding, 0 16px);
  overflow: hidden !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
}
.layout-public .q-header .header-left-section,
.layout-guest .q-header .header-left-section,
.layout-public .q-header .header-center-section,
.layout-guest .q-header .header-center-section,
.layout-public .q-header .header-right-section,
.layout-guest .q-header .header-right-section {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  height: 100%;
}
.layout-public .q-header .header-left-section,
.layout-guest .q-header .header-left-section {
  flex: 1 1 0;
  justify-content: flex-start;
  gap: var(--spacing-sm, 8px);
  overflow: hidden;
  min-width: 0;
}
.layout-public .q-header .header-left-section .app-logo,
.layout-guest .q-header .header-left-section .app-logo {
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-app-name,
.layout-guest .q-header .header-left-section .header-app-name {
  font-size: var(--header-font-size-title, 1.125rem);
  font-weight: 700;
  color: var(--header-text, #ffffff);
  letter-spacing: -0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-separator,
.layout-guest .q-header .header-left-section .header-separator {
  color: var(--header-text-muted, var(--on-brand-muted));
  opacity: 0.4;
  font-weight: 300;
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-route-name,
.layout-guest .q-header .header-left-section .header-route-name {
  color: var(--header-text-muted, var(--on-brand-muted));
  font-weight: 500;
  font-size: var(--header-font-size-route, 0.875rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.layout-public .q-header .header-center-section,
.layout-guest .q-header .header-center-section {
  flex: 0 0 auto;
  justify-content: center;
  padding: 0 var(--spacing-md, 16px);
}
.layout-public .q-header .header-right-section,
.layout-guest .q-header .header-right-section {
  flex: 1 1 0;
  justify-content: flex-end;
  gap: var(--spacing-sm, 8px);
}
.layout-public .q-header .q-icon,
.layout-guest .q-header .q-icon {
  color: var(--header-text-muted, var(--on-brand-muted));
  transition: color var(--transition-fast, 0.15s ease);
}
.layout-public .q-header .q-icon:hover,
.layout-guest .q-header .q-icon:hover {
  color: var(--header-text, #ffffff);
}
.layout-public .q-header .q-btn .q-icon,
.layout-guest .q-header .q-btn .q-icon,
.layout-public .q-header .m3-btn .q-icon,
.layout-guest .q-header .m3-btn .q-icon {
  color: inherit;
}
.layout-public .q-header .q-btn .q-icon:hover,
.layout-guest .q-header .q-btn .q-icon:hover,
.layout-public .q-header .m3-btn .q-icon:hover,
.layout-guest .q-header .m3-btn .q-icon:hover {
  color: inherit;
}
.layout-public.mobile-app-layout,
.layout-guest.mobile-app-layout {
  padding-top: var(--safe-area-inset-top, 0);
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.layout-public.mobile-app-layout .q-header,
.layout-guest.mobile-app-layout .q-header {
  top: var(--safe-area-inset-top, 0) !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-header .q-toolbar,
.layout-guest.mobile-app-layout .q-header .q-toolbar {
  padding-left: calc(var(--spacing-md, 16px) + var(--safe-area-inset-left, 0));
  padding-right: calc(var(--spacing-md, 16px) + var(--safe-area-inset-right, 0));
  padding-top: 0;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-page-container,
.layout-guest.mobile-app-layout .q-page-container {
  margin-top: var(--header-height, 56px);
  margin-bottom: var(--safe-area-inset-bottom, 0);
  max-height: calc(100vh - var(--header-height, 56px) - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
  overflow-y: auto;
}
.layout-public.mobile-app-layout .mobile-app-page-container,
.layout-guest.mobile-app-layout .mobile-app-page-container {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.layout-public,
.layout-guest {
  max-width: 100vw;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-public .q-page-container,
.layout-guest .q-page-container {
  padding-top: 0 !important;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-public.mobile-app-layout .scroll-container,
.layout-guest.mobile-app-layout .scroll-container {
  height: 100%;
  overflow-y: auto;
  background: var(--background-color, #f5f7fa);
}
.layout-public .mobile-app-page-container,
.layout-guest .mobile-app-page-container {
  background: var(--background-color, #f5f7fa);
}
.layout-public .q-page,
.layout-guest .q-page {
  min-height: calc(100vh - var(--header-height, 56px) - var(--footer-height, 48px));
  min-height: calc(100dvh - var(--header-height, 56px) - var(--footer-height, 48px));
  padding-top: var(--header-height, 56px);
  padding-bottom: 0;
}
.layout-public.mobile-app-layout .q-page-container,
.layout-guest.mobile-app-layout .q-page-container {
  padding-top: 0 !important;
}
.layout-public.mobile-app-layout .q-page,
.layout-guest.mobile-app-layout .q-page {
  padding-top: var(--header-height, 56px);
  min-height: calc(100dvh - var(--header-height, 56px) - var(--safe-area-inset-top, 0) - var(--footer-height, 48px) - var(--safe-area-inset-bottom, 0));
}
.layout-public .mobile-app-status-bar-spacer,
.layout-guest .mobile-app-status-bar-spacer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--safe-area-inset-top, 0);
  background: var(--system-bar-bg, #1A4D8F);
  z-index: 2001;
}
.layout-public .mobile-app-navigation-bar-spacer,
.layout-guest .mobile-app-navigation-bar-spacer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: var(--safe-area-inset-bottom, 0);
  background: var(--system-bar-bg, #1A4D8F);
  z-index: 2001;
  pointer-events: none;
}
.layout-public .mobile-app-header,
.layout-guest .mobile-app-header {
  top: var(--safe-area-inset-top, 0) !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  padding-top: 0 !important;
  padding-left: 0;
  padding-right: 0;
}
.layout-public .mobile-app-header .q-toolbar,
.layout-guest .mobile-app-header .q-toolbar {
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-footer,
.layout-guest.mobile-app-layout .q-footer {
  bottom: var(--safe-area-inset-bottom, 0) !important;
}
.layout-public.mobile-app-layout .q-footer.mobile-app-footer,
.layout-guest.mobile-app-layout .q-footer.mobile-app-footer {
  min-height: var(--footer-height, 48px) !important;
  padding-bottom: 0 !important;
}
.layout-authenticated {
  max-width: 100vw;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-authenticated .q-page-container {
  transition: padding-left var(--transition-default, 0.3s ease);
  min-height: 100vh;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated .authenticated-page-container {
  position: relative;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated .mobile-app-page-container {
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated.mobile-app-layout .mobile-app-status-bar {
  height: var(--safe-area-inset-top, 0);
  min-height: var(--safe-area-inset-top, 0) !important;
  background: var(--system-bar-bg, #1A4D8F);
  border: none;
  box-shadow: none;
}
.layout-authenticated.mobile-app-layout .mobile-app-status-bar .status-bar-spacer {
  width: 100%;
  height: 100%;
}
.layout-authenticated.mobile-app-layout .mobile-app-navigation-bar {
  height: var(--safe-area-inset-bottom, 0);
  min-height: var(--safe-area-inset-bottom, 0) !important;
  background: var(--system-bar-bg, #1A4D8F);
  border: none;
  box-shadow: none;
}
.layout-authenticated.mobile-app-layout .mobile-app-navigation-bar .navigation-bar-spacer {
  width: 100%;
  height: 100%;
}
.layout-authenticated.mobile-app-layout .q-page-container {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  min-height: calc(100vh - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
  box-sizing: border-box;
}
.layout-authenticated.mobile-app-layout .q-page {
  min-height: calc(100vh - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
}
.safe-area-padding {
  padding-top: var(--safe-area-inset-top, 0);
  padding-bottom: var(--safe-area-inset-bottom, 0);
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.safe-area-padding-bottom {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.safe-area-padding-top {
  padding-top: var(--safe-area-inset-top, 0);
}
.safe-area-padding-x {
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.mobile-app-layout .q-page.full-bleed {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.kb-sticky-actions {
  position: sticky;
  bottom: max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px));
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.footer-base,
.footer-design {
  background: var(--footer-bg, linear-gradient(135deg, #1a4d8f 0%, #1f9da0 100%)) !important;
  border-top: 1px solid var(--footer-border, rgba(255, 255, 255, 0.1));
  box-shadow: var(--shadow-footer, 0 -2px 8px rgba(0, 0, 0, 0.1));
  transition: all var(--transition-default, 0.3s ease);
  padding-bottom: var(--safe-area-inset-bottom, 0);
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.footer-base .q-toolbar,
.footer-design .q-toolbar {
  min-height: var(--footer-height, 48px);
  padding: 0;
  transition: min-height var(--transition-default, 0.3s ease);
}
.footer-base .footer-left-section,
.footer-base .footer-center-section,
.footer-base .footer-right-section,
.footer-design .footer-left-section,
.footer-design .footer-center-section,
.footer-design .footer-right-section {
  display: flex;
  align-items: center;
  height: 100%;
}
.footer-base .footer-left-section,
.footer-design .footer-left-section {
  flex: 1 1 0;
  justify-content: flex-start;
}
.footer-base .footer-center-section,
.footer-design .footer-center-section {
  flex: 2 1 0;
  justify-content: center;
}
.footer-base .footer-right-section,
.footer-design .footer-right-section {
  flex: 1 1 0;
  justify-content: flex-end;
}
.footer-base .copyright-section,
.footer-design .copyright-section {
  height: 100%;
  display: flex;
  align-items: center;
}
.footer-base .copyright-section .text-subtitle1,
.footer-design .copyright-section .text-subtitle1 {
  color: var(--footer-text-muted, var(--on-brand-muted));
  font-size: var(--footer-font-size-copyright, 0.75rem);
}
.footer-base .copyright-section .footer-link,
.footer-design .copyright-section .footer-link {
  color: var(--footer-text, #ffffff);
  text-decoration: none;
  margin-left: var(--spacing-xs, 4px);
  font-weight: 500;
  font-size: var(--footer-font-size-copyright, 0.75rem);
  transition: all var(--transition-fast, 0.15s ease);
}
.footer-base .copyright-section .footer-link:hover,
.footer-design .copyright-section .footer-link:hover {
  color: var(--footer-text-hover, #ffffff);
  text-decoration: underline;
}
.footer-base .nav-links-section,
.footer-design .nav-links-section {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  height: 100%;
  align-items: center;
  gap: var(--spacing-xs, 4px);
}
.footer-base .legal-links-section,
.footer-design .legal-links-section {
  display: flex;
  justify-content: flex-end;
  flex-wrap: nowrap;
  height: 100%;
  align-items: center;
  gap: var(--spacing-xs, 4px);
  overflow: visible;
  min-width: 0;
}
.footer-base .footer-nav-btn,
.footer-base .footer-legal-btn,
.footer-design .footer-nav-btn,
.footer-design .footer-legal-btn {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  font-weight: 500;
  padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);
  min-height: var(--btn-height-sm, 32px);
  color: var(--footer-text-muted, var(--on-brand-muted));
  border-radius: var(--radius-sm, 4px);
  transition: all var(--transition-fast, 0.15s ease);
  text-transform: none;
}
.footer-base .footer-nav-btn:hover,
.footer-base .footer-legal-btn:hover,
.footer-design .footer-nav-btn:hover,
.footer-design .footer-legal-btn:hover {
  color: var(--footer-text, #ffffff);
  background: var(--footer-link-hover, rgba(255, 255, 255, 0.1));
}
.footer-base .footer-nav-btn.active-route-footer,
.footer-base .footer-legal-btn.active-route-footer,
.footer-design .footer-nav-btn.active-route-footer,
.footer-design .footer-legal-btn.active-route-footer {
  font-weight: 700;
  color: var(--footer-text, #ffffff) !important;
  background: var(--nav-active-bg, rgba(255, 255, 255, 0.15));
}
.footer-base .footer-nav-btn .q-icon,
.footer-base .footer-legal-btn .q-icon,
.footer-design .footer-nav-btn .q-icon,
.footer-design .footer-legal-btn .q-icon {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  margin-right: var(--spacing-xs, 4px);
}
.footer-base .q-btn-dropdown,
.footer-design .q-btn-dropdown {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  font-weight: 500;
  min-height: var(--btn-height-sm, 32px);
  color: var(--footer-text-muted, var(--on-brand-muted));
  border-radius: var(--radius-sm, 4px);
  transition: all var(--transition-fast, 0.15s ease);
}
.footer-base .q-btn-dropdown:hover,
.footer-design .q-btn-dropdown:hover {
  color: var(--footer-text, #ffffff);
  background: var(--footer-link-hover, rgba(255, 255, 255, 0.1));
}
.mobile-app-footer {
  min-height: calc(var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
  padding-bottom: var(--safe-area-inset-bottom, 0) !important;
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.mobile-app-footer .q-toolbar {
  min-height: var(--footer-height, 48px) !important;
}
@media (max-width: 900px) {
.footer-base .nav-links-section,
  .footer-base .legal-links-section,
  .footer-design .nav-links-section,
  .footer-design .legal-links-section {
    gap: 0;
}
.footer-base .footer-nav-btn,
  .footer-base .footer-legal-btn,
  .footer-design .footer-nav-btn,
  .footer-design .footer-legal-btn {
    padding: var(--spacing-xs, 4px);
}
}
.skip-to-content {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);
  background: var(--card-bg, #fff);
  color: var(--text-color, #1d1d1d);
  border: 1px solid var(--border-color, #d0d0d0);
  border-radius: 0 0 var(--radius-md, 8px) 0;
  box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.18));
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-150%);
  transition: transform 0.15s ease-in-out;
}
.skip-to-content:focus {
  top: var(--env-banner-height, 0px);
  transform: translateY(0);
  outline: 2px solid var(--focus-color, #1976d2);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.skip-to-content {
    transition: none;
}
}
#main-content:focus {
  outline: none;
}:root {
  scroll-padding-top: var(--pinned-top-inset, 0px);
  scroll-padding-bottom: calc(max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px)) + var(--sticky-actions-inset, 0px));
}
.scroll-container {
  scroll-padding-top: var(--pinned-top-inset, 0px);
  scroll-padding-bottom: calc(max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px)) + var(--sticky-actions-inset, 0px));
}
body.has-env-banner {
  --env-banner-height: calc(32px + env(safe-area-inset-top, 0px));
}
body.has-env-banner .q-header,
body.has-env-banner .mobile-app-status-bar-spacer,
body.has-env-banner .q-drawer {
  top: var(--env-banner-height) !important;
}
body.has-env-banner .q-drawer {
  height: calc(100vh - var(--env-banner-height)) !important;
  max-height: calc(100vh - var(--env-banner-height)) !important;
}
body.has-env-banner .q-page-container {
  margin-top: var(--env-banner-height);
}
body.has-cookie-banner .q-dialog__inner--bottom {
  bottom: calc(var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
  transition: bottom 0.2s ease;
}
body.has-cookie-banner {
  --cookie-banner-height: 220px;
}
@media (max-width: 768px) {
body.has-cookie-banner {
    --cookie-banner-height: 200px;
}
}
body.has-cookie-banner .q-page-container {
  padding-bottom: calc(var(--cookie-banner-height) + var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
}
.layout-authenticated .loading-overlay, .layout-public .loading-overlay,
.layout-guest .loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--overlay-bg, rgba(0, 0, 0, 0.5));
  z-index: var(--z-modal, 9000);
  display: flex;
  align-items: center;
  justify-content: center;
}
.layout-authenticated .active-route, .layout-public .active-route,
.layout-guest .active-route {
  border: 2px solid var(--nav-active-border, currentColor) !important;
  border-radius: var(--radius-sm, 4px) !important;
}
.layout-authenticated .content-hidden, .layout-public .content-hidden,
.layout-guest .content-hidden {
  opacity: 0;
  pointer-events: none;
}
.layout-authenticated .route-loading, .layout-public .route-loading,
.layout-guest .route-loading {
  min-height: 200px;
}
.layout-authenticated .route-loading-state, .layout-public .route-loading-state,
.layout-guest .route-loading-state {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 48px 0;
}
.layout-public .q-header,
.layout-guest .q-header {
  background: var(--header-bg, linear-gradient(135deg, #1a4d8f 0%, #1f9da0 100%));
  box-shadow: var(--header-shadow, 0 2px 8px rgba(0, 0, 0, 0.15));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--header-border, rgba(255, 255, 255, 0.1));
  transition: all var(--transition-default, 0.3s ease);
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  overflow: hidden !important;
}
.layout-public .q-header .q-toolbar,
.layout-guest .q-header .q-toolbar {
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  padding: var(--header-padding, 0 16px);
  overflow: hidden !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
}
.layout-public .q-header .header-left-section,
.layout-guest .q-header .header-left-section,
.layout-public .q-header .header-center-section,
.layout-guest .q-header .header-center-section,
.layout-public .q-header .header-right-section,
.layout-guest .q-header .header-right-section {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  height: 100%;
}
.layout-public .q-header .header-left-section,
.layout-guest .q-header .header-left-section {
  flex: 1 1 0;
  justify-content: flex-start;
  gap: var(--spacing-sm, 8px);
  overflow: hidden;
  min-width: 0;
}
.layout-public .q-header .header-left-section .app-logo,
.layout-guest .q-header .header-left-section .app-logo {
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-app-name,
.layout-guest .q-header .header-left-section .header-app-name {
  font-size: var(--header-font-size-title, 1.125rem);
  font-weight: 700;
  color: var(--header-text, #ffffff);
  letter-spacing: -0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-separator,
.layout-guest .q-header .header-left-section .header-separator {
  color: var(--header-text-muted, var(--on-brand-muted));
  opacity: 0.4;
  font-weight: 300;
  flex-shrink: 0;
}
.layout-public .q-header .header-left-section .header-route-name,
.layout-guest .q-header .header-left-section .header-route-name {
  color: var(--header-text-muted, var(--on-brand-muted));
  font-weight: 500;
  font-size: var(--header-font-size-route, 0.875rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.layout-public .q-header .header-center-section,
.layout-guest .q-header .header-center-section {
  flex: 0 0 auto;
  justify-content: center;
  padding: 0 var(--spacing-md, 16px);
}
.layout-public .q-header .header-right-section,
.layout-guest .q-header .header-right-section {
  flex: 1 1 0;
  justify-content: flex-end;
  gap: var(--spacing-sm, 8px);
}
.layout-public .q-header .q-icon,
.layout-guest .q-header .q-icon {
  color: var(--header-text-muted, var(--on-brand-muted));
  transition: color var(--transition-fast, 0.15s ease);
}
.layout-public .q-header .q-icon:hover,
.layout-guest .q-header .q-icon:hover {
  color: var(--header-text, #ffffff);
}
.layout-public .q-header .q-btn .q-icon,
.layout-guest .q-header .q-btn .q-icon,
.layout-public .q-header .m3-btn .q-icon,
.layout-guest .q-header .m3-btn .q-icon {
  color: inherit;
}
.layout-public .q-header .q-btn .q-icon:hover,
.layout-guest .q-header .q-btn .q-icon:hover,
.layout-public .q-header .m3-btn .q-icon:hover,
.layout-guest .q-header .m3-btn .q-icon:hover {
  color: inherit;
}
.layout-public.mobile-app-layout,
.layout-guest.mobile-app-layout {
  padding-top: var(--safe-area-inset-top, 0);
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.layout-public.mobile-app-layout .q-header,
.layout-guest.mobile-app-layout .q-header {
  top: var(--safe-area-inset-top, 0) !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-header .q-toolbar,
.layout-guest.mobile-app-layout .q-header .q-toolbar {
  padding-left: calc(var(--spacing-md, 16px) + var(--safe-area-inset-left, 0));
  padding-right: calc(var(--spacing-md, 16px) + var(--safe-area-inset-right, 0));
  padding-top: 0;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-page-container,
.layout-guest.mobile-app-layout .q-page-container {
  margin-top: var(--header-height, 56px);
  margin-bottom: var(--safe-area-inset-bottom, 0);
  max-height: calc(100vh - var(--header-height, 56px) - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
  overflow-y: auto;
}
.layout-public.mobile-app-layout .mobile-app-page-container,
.layout-guest.mobile-app-layout .mobile-app-page-container {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.layout-public,
.layout-guest {
  max-width: 100vw;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-public .q-page-container,
.layout-guest .q-page-container {
  padding-top: 0 !important;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-public.mobile-app-layout .scroll-container,
.layout-guest.mobile-app-layout .scroll-container {
  height: 100%;
  overflow-y: auto;
  background: var(--background-color, #f5f7fa);
}
.layout-public .mobile-app-page-container,
.layout-guest .mobile-app-page-container {
  background: var(--background-color, #f5f7fa);
}
.layout-public .q-page,
.layout-guest .q-page {
  min-height: calc(100vh - var(--header-height, 56px) - var(--footer-height, 48px));
  min-height: calc(100dvh - var(--header-height, 56px) - var(--footer-height, 48px));
  padding-top: var(--header-height, 56px);
  padding-bottom: 0;
}
.layout-public.mobile-app-layout .q-page-container,
.layout-guest.mobile-app-layout .q-page-container {
  padding-top: 0 !important;
}
.layout-public.mobile-app-layout .q-page,
.layout-guest.mobile-app-layout .q-page {
  padding-top: var(--header-height, 56px);
  min-height: calc(100dvh - var(--header-height, 56px) - var(--safe-area-inset-top, 0) - var(--footer-height, 48px) - var(--safe-area-inset-bottom, 0));
}
.layout-public .mobile-app-status-bar-spacer,
.layout-guest .mobile-app-status-bar-spacer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--safe-area-inset-top, 0);
  background: var(--system-bar-bg, #1A4D8F);
  z-index: 2001;
}
.layout-public .mobile-app-navigation-bar-spacer,
.layout-guest .mobile-app-navigation-bar-spacer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: var(--safe-area-inset-bottom, 0);
  background: var(--system-bar-bg, #1A4D8F);
  z-index: 2001;
  pointer-events: none;
}
.layout-public .mobile-app-header,
.layout-guest .mobile-app-header {
  top: var(--safe-area-inset-top, 0) !important;
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
  padding-top: 0 !important;
  padding-left: 0;
  padding-right: 0;
}
.layout-public .mobile-app-header .q-toolbar,
.layout-guest .mobile-app-header .q-toolbar {
  min-height: var(--header-height, 56px) !important;
  max-height: var(--header-height, 56px) !important;
}
.layout-public.mobile-app-layout .q-footer,
.layout-guest.mobile-app-layout .q-footer {
  bottom: var(--safe-area-inset-bottom, 0) !important;
}
.layout-public.mobile-app-layout .q-footer.mobile-app-footer,
.layout-guest.mobile-app-layout .q-footer.mobile-app-footer {
  min-height: var(--footer-height, 48px) !important;
  padding-bottom: 0 !important;
}
.layout-authenticated {
  max-width: 100vw;
  overflow-x: hidden;
  overflow-x: clip;
}
.layout-authenticated .q-page-container {
  transition: padding-left var(--transition-default, 0.3s ease);
  min-height: 100vh;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated .authenticated-page-container {
  position: relative;
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated .mobile-app-page-container {
  background: var(--background-color, #f5f7fa);
  max-width: 100%;
}
.layout-authenticated.mobile-app-layout .mobile-app-status-bar {
  height: var(--safe-area-inset-top, 0);
  min-height: var(--safe-area-inset-top, 0) !important;
  background: var(--system-bar-bg, #1A4D8F);
  border: none;
  box-shadow: none;
}
.layout-authenticated.mobile-app-layout .mobile-app-status-bar .status-bar-spacer {
  width: 100%;
  height: 100%;
}
.layout-authenticated.mobile-app-layout .mobile-app-navigation-bar {
  height: var(--safe-area-inset-bottom, 0);
  min-height: var(--safe-area-inset-bottom, 0) !important;
  background: var(--system-bar-bg, #1A4D8F);
  border: none;
  box-shadow: none;
}
.layout-authenticated.mobile-app-layout .mobile-app-navigation-bar .navigation-bar-spacer {
  width: 100%;
  height: 100%;
}
.layout-authenticated.mobile-app-layout .q-page-container {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  min-height: calc(100vh - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
  box-sizing: border-box;
}
.layout-authenticated.mobile-app-layout .q-page {
  min-height: calc(100vh - var(--safe-area-inset-top, 0) - var(--safe-area-inset-bottom, 0));
}
.safe-area-padding {
  padding-top: var(--safe-area-inset-top, 0);
  padding-bottom: var(--safe-area-inset-bottom, 0);
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.safe-area-padding-bottom {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.safe-area-padding-top {
  padding-top: var(--safe-area-inset-top, 0);
}
.safe-area-padding-x {
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.mobile-app-layout .q-page.full-bleed {
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.kb-sticky-actions {
  position: sticky;
  bottom: max(var(--pinned-bottom-inset, 0px), var(--keyboard-inset-height, 0px));
  padding-bottom: var(--safe-area-inset-bottom, 0);
}
.footer-base,
.footer-design {
  background: var(--footer-bg, linear-gradient(135deg, #1a4d8f 0%, #1f9da0 100%)) !important;
  border-top: 1px solid var(--footer-border, rgba(255, 255, 255, 0.1));
  box-shadow: var(--shadow-footer, 0 -2px 8px rgba(0, 0, 0, 0.1));
  transition: all var(--transition-default, 0.3s ease);
  padding-bottom: var(--safe-area-inset-bottom, 0);
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.footer-base .q-toolbar,
.footer-design .q-toolbar {
  min-height: var(--footer-height, 48px);
  padding: 0;
  transition: min-height var(--transition-default, 0.3s ease);
}
.footer-base .footer-left-section,
.footer-base .footer-center-section,
.footer-base .footer-right-section,
.footer-design .footer-left-section,
.footer-design .footer-center-section,
.footer-design .footer-right-section {
  display: flex;
  align-items: center;
  height: 100%;
}
.footer-base .footer-left-section,
.footer-design .footer-left-section {
  flex: 1 1 0;
  justify-content: flex-start;
}
.footer-base .footer-center-section,
.footer-design .footer-center-section {
  flex: 2 1 0;
  justify-content: center;
}
.footer-base .footer-right-section,
.footer-design .footer-right-section {
  flex: 1 1 0;
  justify-content: flex-end;
}
.footer-base .copyright-section,
.footer-design .copyright-section {
  height: 100%;
  display: flex;
  align-items: center;
}
.footer-base .copyright-section .text-subtitle1,
.footer-design .copyright-section .text-subtitle1 {
  color: var(--footer-text-muted, var(--on-brand-muted));
  font-size: var(--footer-font-size-copyright, 0.75rem);
}
.footer-base .copyright-section .footer-link,
.footer-design .copyright-section .footer-link {
  color: var(--footer-text, #ffffff);
  text-decoration: none;
  margin-left: var(--spacing-xs, 4px);
  font-weight: 500;
  font-size: var(--footer-font-size-copyright, 0.75rem);
  transition: all var(--transition-fast, 0.15s ease);
}
.footer-base .copyright-section .footer-link:hover,
.footer-design .copyright-section .footer-link:hover {
  color: var(--footer-text-hover, #ffffff);
  text-decoration: underline;
}
.footer-base .nav-links-section,
.footer-design .nav-links-section {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  height: 100%;
  align-items: center;
  gap: var(--spacing-xs, 4px);
}
.footer-base .legal-links-section,
.footer-design .legal-links-section {
  display: flex;
  justify-content: flex-end;
  flex-wrap: nowrap;
  height: 100%;
  align-items: center;
  gap: var(--spacing-xs, 4px);
  overflow: visible;
  min-width: 0;
}
.footer-base .footer-nav-btn,
.footer-base .footer-legal-btn,
.footer-design .footer-nav-btn,
.footer-design .footer-legal-btn {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  font-weight: 500;
  padding: var(--spacing-xs, 4px) var(--spacing-sm, 8px);
  min-height: var(--btn-height-sm, 32px);
  color: var(--footer-text-muted, var(--on-brand-muted));
  border-radius: var(--radius-sm, 4px);
  transition: all var(--transition-fast, 0.15s ease);
  text-transform: none;
}
.footer-base .footer-nav-btn:hover,
.footer-base .footer-legal-btn:hover,
.footer-design .footer-nav-btn:hover,
.footer-design .footer-legal-btn:hover {
  color: var(--footer-text, #ffffff);
  background: var(--footer-link-hover, rgba(255, 255, 255, 0.1));
}
.footer-base .footer-nav-btn.active-route-footer,
.footer-base .footer-legal-btn.active-route-footer,
.footer-design .footer-nav-btn.active-route-footer,
.footer-design .footer-legal-btn.active-route-footer {
  font-weight: 700;
  color: var(--footer-text, #ffffff) !important;
  background: var(--nav-active-bg, rgba(255, 255, 255, 0.15));
}
.footer-base .footer-nav-btn .q-icon,
.footer-base .footer-legal-btn .q-icon,
.footer-design .footer-nav-btn .q-icon,
.footer-design .footer-legal-btn .q-icon {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  margin-right: var(--spacing-xs, 4px);
}
.footer-base .q-btn-dropdown,
.footer-design .q-btn-dropdown {
  font-size: var(--footer-font-size-nav, 0.8125rem);
  font-weight: 500;
  min-height: var(--btn-height-sm, 32px);
  color: var(--footer-text-muted, var(--on-brand-muted));
  border-radius: var(--radius-sm, 4px);
  transition: all var(--transition-fast, 0.15s ease);
}
.footer-base .q-btn-dropdown:hover,
.footer-design .q-btn-dropdown:hover {
  color: var(--footer-text, #ffffff);
  background: var(--footer-link-hover, rgba(255, 255, 255, 0.1));
}
.mobile-app-footer {
  min-height: calc(var(--footer-height, 48px) + var(--safe-area-inset-bottom, 0)) !important;
  padding-bottom: var(--safe-area-inset-bottom, 0) !important;
  padding-left: var(--safe-area-inset-left, 0);
  padding-right: var(--safe-area-inset-right, 0);
}
.mobile-app-footer .q-toolbar {
  min-height: var(--footer-height, 48px) !important;
}
@media (max-width: 900px) {
.footer-base .nav-links-section,
  .footer-base .legal-links-section,
  .footer-design .nav-links-section,
  .footer-design .legal-links-section {
    gap: 0;
}
.footer-base .footer-nav-btn,
  .footer-base .footer-legal-btn,
  .footer-design .footer-nav-btn,
  .footer-design .footer-legal-btn {
    padding: var(--spacing-xs, 4px);
}
}
.skip-to-content {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  padding: var(--spacing-sm, 8px) var(--spacing-md, 16px);
  background: var(--card-bg, #fff);
  color: var(--text-color, #1d1d1d);
  border: 1px solid var(--border-color, #d0d0d0);
  border-radius: 0 0 var(--radius-md, 8px) 0;
  box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.18));
  font-weight: 600;
  text-decoration: none;
  transform: translateY(-150%);
  transition: transform 0.15s ease-in-out;
}
.skip-to-content:focus {
  top: var(--env-banner-height, 0px);
  transform: translateY(0);
  outline: 2px solid var(--focus-color, #1976d2);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.skip-to-content {
    transition: none;
}
}
#main-content:focus {
  outline: none;
}.layout-header-content[data-v-217aac8b] {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
  height: 100%;
}
.header-left-section[data-v-217aac8b],
.header-center-section[data-v-217aac8b],
.header-right-section[data-v-217aac8b] {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  height: 100%;
}
.header-left-section[data-v-217aac8b] {
  flex: 1 1 0;
  justify-content: flex-start;
  gap: var(--spacing-sm, 8px);
  overflow: hidden;
  min-width: 0;
}
.header-center-section[data-v-217aac8b] {
  flex: 0 0 auto;
  justify-content: center;
  padding: 0 var(--spacing-md, 16px);
}
.header-right-section[data-v-217aac8b] {
  flex: 1 1 0;
  justify-content: flex-end;
  gap: var(--spacing-sm, 8px);
}
.header-logo-placeholder[data-v-217aac8b] {
  width: 32px;
  height: 32px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}
.header-app-name[data-v-217aac8b] {
  font-size: var(--header-font-size-title, 1.125rem);
  font-weight: 700;
  color: var(--header-text, #ffffff);
  letter-spacing: -0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}
.header-separator[data-v-217aac8b] {
  color: var(--header-text-muted, rgba(255, 255, 255, 0.7));
  opacity: 0.4;
  font-weight: 300;
  flex-shrink: 0;
}
.header-route-name[data-v-217aac8b] {
  color: var(--header-text-muted, rgba(255, 255, 255, 0.7));
  font-weight: 500;
  font-size: var(--header-font-size-route, 0.875rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}