:root {
  --geo-bg-top: #f6f8fb;
  --geo-bg-bottom: #e9eef4;
  --geo-surface: rgba(255, 255, 255, 0.92);
  --geo-surface-solid: #ffffff;
  --geo-border: rgba(148, 163, 184, 0.22);
  --geo-shadow: 0 22px 60px rgba(15, 23, 42, 0.1);
  --geo-shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.08);
  --geo-primary: #2c3545;
  --geo-primary-soft: rgba(44, 53, 69, 0.09);
  --geo-text: #172033;
  --geo-muted: #5f6b7a;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  background: #ffffff !important;
  color: var(--geo-text);
}

.app-shell {
  position: relative;
  z-index: 1;
}

.calc-picker {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.card,
.pick-tile,
.result-card {
  background: var(--geo-surface) !important;
  box-shadow: none !important;
  backdrop-filter: blur(10px);
}

.result-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  padding: 0 !important;
}

.pick-tile {
  overflow: hidden;
  backdrop-filter: none;
}

.pick-tile::before {
  content: none;
}

.pick-tile:hover,
.option-card:hover {
  box-shadow: none !important;
}

.option-card {
  border-color: rgba(148, 163, 184, 0.28) !important;
  border-radius: 16px;
}

.option-card.selected {
  background: var(--geo-primary-soft) !important;
  border-color: rgba(44, 53, 69, 0.35) !important;
}

.btn-primary,
.btn-secondary {
  min-height: 48px;
}

.question h2 {
  line-height: 1.2;
}

.result-actions {
  gap: 12px;
}

.result-actions > a,
.result-actions > button,
.result-actions > div > a,
.result-actions > div > button {
  min-height: 48px;
}

@media (max-width: 767px) {
  html {
    font-size: 15px;
  }

  body {
    display: block !important;
    min-height: 100vh !important;
    padding: 12px !important;
    background: #ffffff !important;
  }

  .app-shell,
  .w-full.max-w-4xl.mx-auto.space-y-4 {
    max-width: none !important;
  }

  .card,
  .result-card {
    padding: 18px !important;
    border-radius: 22px !important;
    box-shadow: none !important;
  }

  .result-card {
    padding: 0 !important;
    border-radius: 0 !important;
  }

  .pick-tile {
    padding: 14px !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    box-shadow: none !important;
  }

  .pick-tile > div {
    gap: 12px !important;
  }

  .pick-tile:hover {
    box-shadow: none !important;
    transform: none !important;
  }

  .pick-tile.is-active {
    box-shadow: none !important;
    border-color: rgba(156, 163, 175, 0.8) !important;
  }

  .pick-tile .h-11.w-11 {
    width: 42px !important;
    height: 42px !important;
    flex-shrink: 0;
  }

  .pick-tile .text-lg {
    font-size: 0.95rem !important;
    line-height: 1.25rem !important;
  }

  .pick-tile .text-sm {
    font-size: 0.82rem !important;
    line-height: 1.2rem !important;
  }

  .pick-pill {
    font-size: 0.72rem !important;
    padding: 0.22rem 0.5rem !important;
  }

  .question h2,
  .text-xl.font-semibold {
    font-size: 1.02rem !important;
    line-height: 1.3rem !important;
    margin-bottom: 14px !important;
  }

  .text-sm {
    font-size: 0.84rem !important;
    line-height: 1.25rem !important;
  }

  .text-xs {
    font-size: 0.76rem !important;
    line-height: 1.1rem !important;
  }

  label.block,
  .option-card label,
  .text-gray-700 {
    font-size: 0.9rem !important;
    line-height: 1.25rem !important;
  }

  input[type="number"],
  input[type="text"] {
    min-height: 50px;
    font-size: 16px !important;
  }

  .option-card {
    padding: 14px !important;
  }

  .option-card label {
    font-size: 0.95rem !important;
    line-height: 1.3rem !important;
  }

  .flex.justify-between,
  .flex.justify-end,
  .result-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .flex.justify-between > button,
  .flex.justify-end > button,
  .result-actions > a,
  .result-actions > button,
  .result-actions .download-slot,
  .result-actions #downloadContainer,
  .result-actions #downloadDocContainer {
    width: 100% !important;
  }

  .flex.justify-between > button + button,
  .flex.justify-end > button + button,
  .result-actions > a + button,
  .result-actions > button + a,
  .result-actions > button + button {
    margin-top: 0 !important;
  }

  .result-actions .download-slot > a,
  .result-actions #downloadContainer > a,
  .result-actions #downloadDocContainer > a {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }

  .bg-blue-50.border-l-4,
  .rounded-lg.border.border-gray-200 {
    border-radius: 16px !important;
    padding: 14px !important;
  }

  .result-card,
  #resultContainer,
  #result,
  #question-result,
  #result-content,
  #downloadContainer,
  #downloadDocContainer {
    font-size: 0.84rem !important;
    line-height: 1.25rem !important;
  }

  .result-card p,
  .result-card li,
  .result-card span,
  .result-card .text-gray-700,
  .result-card .text-gray-800,
  .result-card .text-blue-700,
  .result-card .text-sm,
  .result-card .text-xs,
  #resultContainer p,
  #result p,
  #question-result p,
  #result-content p {
    font-size: 0.82rem !important;
    line-height: 1.22rem !important;
  }

  .result-item {
    font-size: 0.84rem !important;
    line-height: 1.25rem !important;
  }

  .result-actions .download-slot,
  .result-actions #downloadContainer,
  .result-actions #downloadDocContainer {
    display: block !important;
    width: 100% !important;
  }

  .result-actions > a,
  .result-actions > button,
  .result-actions .download-slot > button,
  .result-actions .download-slot > a,
  .result-actions #downloadContainer > button,
  .result-actions #downloadContainer > a,
  .result-actions #downloadDocContainer > a,
  #download-link,
  #download-report,
  .result-actions button.btn-primary,
  .result-actions a.btn-primary {
    min-height: 48px !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.9rem !important;
    box-sizing: border-box !important;
  }
}
