.ge-page {
  min-height: 100vh;
  padding: 126px 0 80px;
  color: #eaf6fb;
  background: radial-gradient(circle at 12% 5%, rgba(20, 145, 184, 0.2), transparent 34%), #06131f;
}

.ge-shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.ge-hero { padding: clamp(25px, 5vw, 52px); border: 1px solid rgba(91, 220, 246, .2); border-radius: 28px; background: linear-gradient(135deg, rgba(18, 58, 79, .96), rgba(8, 28, 43, .96)); box-shadow: 0 24px 65px rgba(0, 0, 0, .28); }
.ge-back { display: inline-flex; margin-bottom: 28px; color: #8eeaff; font-weight: 800; }
.ge-hero h1 { max-width: 850px; margin: 7px 0 14px; font-size: clamp(38px, 7vw, 74px); line-height: .98; }
.ge-hero > p:not(.eyebrow) { max-width: 900px; color: rgba(233, 246, 251, .78); font-size: clamp(17px, 2vw, 21px); line-height: 1.65; }
.ge-badges { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 25px; }
.ge-badges span { padding: 8px 12px; border: 1px solid rgba(104, 229, 255, .2); border-radius: 999px; color: #c8f5ff; background: rgba(19, 96, 121, .25); font-size: .78rem; font-weight: 800; }

.ge-layout { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; gap: 22px; align-items: start; }
.ge-layout.has-result { grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); justify-content: stretch; }
.ge-card, .ge-method, .ge-note, .ge-privacy { border: 1px solid rgba(114, 215, 238, .18); border-radius: 22px; background: rgba(13, 39, 57, .9); box-shadow: 0 18px 46px rgba(0, 0, 0, .2); }
.ge-card { padding: clamp(20px, 3vw, 30px); }
.ge-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.ge-card-heading h2 { margin: 3px 0 0; font-size: clamp(24px, 3vw, 34px); }
.ge-step { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: #05202b; background: #64dfc2; font-weight: 900; }
.ge-help { margin: -7px 0 20px; color: rgba(232, 244, 249, .68); line-height: 1.6; }
.ge-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ge-span-2 { grid-column: 1 / -1; }
.ge-field { display: grid; gap: 7px; color: #cde6ef; font-size: .82rem; font-weight: 800; }
.ge-field span small { color: rgba(205, 230, 239, .58); font-weight: 500; }
.ge-field input, .ge-field select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid rgba(103, 207, 231, .3); border-radius: 10px; color: #092235; background: #f7fbfd; font: inherit; }
.ge-field input:focus, .ge-field select:focus { outline: 3px solid rgba(77, 222, 199, .22); border-color: #4ddec7; }
.ge-field small { color: rgba(229, 242, 247, .62); font-weight: 500; line-height: 1.45; }
.ge-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ge-button { min-height: 44px; padding: 10px 16px; border: 1px solid rgba(127, 221, 242, .38); border-radius: 999px; color: #e9f8fc; background: rgba(28, 78, 99, .7); font: inherit; font-weight: 800; cursor: pointer; }
.ge-button:hover { border-color: #8cecff; background: rgba(37, 98, 121, .95); }
.ge-button.is-primary { border-color: transparent; color: #06232e; background: linear-gradient(135deg, #72e4c8, #8eeeff); }
.ge-status { min-height: 24px; margin: 17px 0 0; color: #8ee7d0; line-height: 1.5; }
.ge-status.is-error { color: #ffb7b7; }

.ge-result { position: sticky; top: 112px; }
.ge-main-result { display: grid; gap: 6px; margin-bottom: 20px; padding: 22px; border: 1px solid rgba(109, 235, 208, .28); border-radius: 18px; text-align: center; background: linear-gradient(145deg, rgba(44, 132, 125, .32), rgba(20, 71, 91, .28)); }
.ge-main-result span, .ge-main-result small { color: rgba(231, 247, 249, .7); }
.ge-main-result strong { color: #86f2d5; font-size: clamp(31px, 5vw, 46px); letter-spacing: -.04em; }
.ge-results-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid rgba(123, 210, 229, .16); border-radius: 16px; overflow: hidden; }
.ge-results-grid div { min-width: 0; padding: 15px; border-right: 1px solid rgba(123, 210, 229, .13); border-bottom: 1px solid rgba(123, 210, 229, .13); }
.ge-results-grid div:nth-child(2n) { border-right: 0; }
.ge-results-grid dt { color: rgba(226, 241, 246, .62); font-size: .75rem; }
.ge-results-grid dd { margin: 6px 0 0; color: #fff; font-weight: 850; overflow-wrap: anywhere; }
.ge-rounding { padding: 13px 16px; border-radius: 12px; color: #d7edf4; background: rgba(4, 19, 29, .45); }
.ge-rounding strong { color: #86f2d5; }

.ge-method { margin-top: 24px; padding: clamp(22px, 4vw, 34px); }
.ge-method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.ge-method-grid article { padding: 20px; border: 1px solid rgba(113, 216, 238, .14); border-radius: 16px; background: rgba(5, 24, 36, .42); }
.ge-method-grid article > span { color: #6fe1c4; font-size: .78rem; font-weight: 900; }
.ge-method-grid h3 { margin: 10px 0 8px; }
.ge-method-grid p { margin: 0; color: rgba(229, 242, 247, .67); line-height: 1.58; }
.ge-note, .ge-privacy { margin-top: 16px; padding: 17px 20px; color: rgba(229, 242, 247, .72); line-height: 1.6; }
.ge-note strong, .ge-privacy strong { color: #8eeaff; }
.ge-print-sheet { display: none; }

@media (max-width: 850px) {
  .ge-page { padding-top: calc(var(--mobile-header-height) + 35px); }
  .ge-layout, .ge-layout.has-result, .ge-method-grid { grid-template-columns: 1fr; }
  .ge-result { position: static; }
}

@media (max-width: 560px) {
  .ge-shell { width: min(100% - 20px, 1180px); }
  .ge-grid, .ge-results-grid { grid-template-columns: 1fr; }
  .ge-span-2 { grid-column: auto; }
  .ge-results-grid div { border-right: 0; }
  .ge-actions, .ge-button { width: 100%; }
}

@media print {
  body > *:not(.ge-print-sheet) { display: none !important; }
  .ge-print-sheet { display: block !important; padding: 12mm; color: #15232c; background: #fff; font-family: Arial, sans-serif; }
  .ge-print-sheet header { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 12mm; align-items: center; padding-bottom: 8mm; border-bottom: 2px solid #0f6094; text-align: center; }
  .ge-print-sheet header img { width: 100%; max-height: 26mm; object-fit: contain; }
  .ge-print-sheet h1 { margin: 0 0 4px; color: #0d4f80; font-size: 21pt; }
  .ge-print-sheet header p, .ge-print-sheet header a { margin: 2px 0; color: #334f61; font-size: 9pt; }
  .ge-print-main { display: grid; gap: 2mm; margin: 9mm 0; padding: 7mm; border-radius: 4mm; text-align: center; background: #e7f5f3; }
  .ge-print-main strong { color: #0a715f; font-size: 26pt; }
  .ge-print-sheet table { width: 100%; border-collapse: collapse; font-size: 10pt; }
  .ge-print-sheet th, .ge-print-sheet td { padding: 3mm; border-bottom: 1px solid #d8e2e8; text-align: left; }
  .ge-print-sheet th { width: 45%; color: #365568; background: #f4f8fa; }
  .ge-print-sheet footer { margin-top: 9mm; padding-top: 5mm; border-top: 1px solid #b7c9d3; color: #536c7a; font-size: 8.5pt; line-height: 1.5; }
}
