.page-wrapper {
  max-width: 720px !important;
  margin: 0 auto !important;
}

/* ===== Header ===== */
.main-header {
  text-align: center !important;
  background: linear-gradient(135deg, #9CA1E2 0%, #4b85e6 50%, #9CA1E2 100%) !important;
  color: #FFFFFF !important;
  padding: 31px !important;
  border-radius: 15px !important;
  margin-bottom: 10px !important;
  box-shadow: 0 10px 30px rgba(30, 58, 138, 0.2) !important;
}

.main-header h1 {
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}

/* ===== Calculator Card ===== */
.calculator-card {
  background: #FFFFFF !important;
  border: 1px solid #E3E8F4 !important;
  border-radius: 16px !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
  box-shadow: 0 8px 28px rgba(75, 133, 230, 0.10) !important;
}

/* ===== Formula ===== */
.formula-section {
  text-align: center !important;
  margin-bottom: 28px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #EEF1FA !important;
}

.formula-label {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #2E3A59 !important;
  margin-bottom: 14px !important;
}

.formula-display {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  font-size: 20px !important;
  color: #2E3A59 !important;
}

/* Fraction rendering */
.frac {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  vertical-align: middle !important;
  line-height: 1.2 !important;
}

.frac .num {
  border-bottom: 2px solid #4b85e6 !important;
  padding: 0 6px 2px !important;
  font-size: 18px !important;
  white-space: nowrap !important;
}

.frac .denom {
  padding: 2px 6px 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.frac-inline {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  line-height: 1.1 !important;
}

.frac-inline .num-small {
  border-bottom: 1.5px solid #4b85e6 !important;
  padding: 0 4px 1px !important;
  font-size: 14px !important;
  white-space: nowrap !important;
}

.frac-inline .denom-small {
  padding: 1px 4px 0 !important;
  font-size: 14px !important;
}

.sub {
  font-size: 0.65em !important;
  vertical-align: sub !important;
}

.formula-times {
  font-size: 18px !important;
  margin-left: 4px !important;
}

.formula-equals {
  font-size: 18px !important;
  margin-left: 8px !important;
  font-weight: 600 !important;
  color: #4b85e6 !important;
}

/* ===== Inputs ===== */
.inputs-section {
  margin-bottom: 20px !important;
}

.section-heading {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #2E3A59 !important;
  margin-bottom: 16px !important;
}

.input-row {
  display: flex !important;
  gap: 20px !important;
  margin-bottom: 20px !important;
}

.input-group {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.input-group label {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #2E3A59 !important;
  margin-bottom: 6px !important;
}

.input-group input {
  width: 100% !important;
  background: #FFFFFF !important;
  color: #1E293B !important;
  border: 1px solid #C8D2F0 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-size: 15px !important;
  font-family: inherit !important;
  outline: none !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.input-group input::placeholder {
  color: #A0AEC0 !important;
}

.input-group input:focus {
  border-color: #4b85e6 !important;
  box-shadow: 0 0 0 4px rgba(75, 133, 230, 0.15) !important;
}

.input-group input.input-error {
  border-color: #E53E3E !important;
  box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.12) !important;
}

.error-message {
  color: #E53E3E !important;
  font-size: 13px !important;
  margin-top: 5px !important;
  min-height: 18px !important;
  display: block !important;
}

/* ===== Buttons ===== */
.button-row {
  display: flex !important;
  gap: 14px !important;
  justify-content: flex-end !important;
}

.btn-clear {
  background: #FFFFFF !important;
  color: #2E5BB8 !important;
  border: 1px solid #C8D2F0 !important;
  border-radius: 10px !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: transform 0.2s, box-shadow 0.2s, background 0.2s !important;
}

.btn-clear:hover {
  background: #F0F4FF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 10px rgba(75, 133, 230, 0.15) !important;
}

.btn-calculate {
  background: linear-gradient(135deg, #9CA1E2 0%, #4b85e6 50%, #9CA1E2 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(75, 133, 230, 0.24) !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
}

.btn-calculate:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 18px rgba(75, 133, 230, 0.30) !important;
}

/* ===== Divider ===== */
.divider {
  border: none !important;
  border-top: 1px solid #EEF1FA !important;
  margin: 24px 0 !important;
}

/* ===== Answer ===== */
.answer-section {
  margin-bottom: 4px !important;
}

.answer-box {
  background: #EEF0FC !important;
  border: 1px solid #D5DCF6 !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: #2E3A59 !important;
  min-height: 24px !important;
  text-align: center !important;
}

/* ===== Solution ===== */
.solution-section {
  margin-bottom: 4px !important;
}

.solution-box {
  background: #F7F9FE !important;
  border: 1px solid #E3E8F4 !important;
  border-radius: 10px !important;
  padding: 18px 22px !important;
}

.solution-box pre {
  font-family: inherit !important;
  font-size: 15px !important;
  color: #2E3A59 !important;
  line-height: 1.8 !important;
  white-space: pre-wrap !important;
  word-wrap: break-word !important;
}

/* ===== Note ===== */
.note-section {
  margin-bottom: 0 !important;
}

.note-text {
  font-size: 14px !important;
  color: #5A6A8A !important;
  line-height: 1.7 !important;
}

.note-text strong {
  color: #2E3A59 !important;
}

/* ===== Responsive ===== */
@media (max-width: 600px) {
  body {
    padding: 12px !important;
  }

  .main-header {
    padding: 22px 16px !important;
  }

  .main-header h1 {
    font-size: 20px !important;
  }

  .calculator-card {
    padding: 16px !important;
  }

  .formula-display {
    font-size: 16px !important;
  }

  .frac .num {
    font-size: 15px !important;
  }

  .frac-inline .num-small,
  .frac-inline .denom-small {
    font-size: 12px !important;
  }

  .formula-times,
  .formula-equals {
    font-size: 15px !important;
  }

  .input-row {
    flex-direction: column !important;
    gap: 14px !important;
  }

  .button-row {
    flex-direction: column-reverse !important;
    gap: 10px !important;
  }

  .btn-clear,
  .btn-calculate {
    width: 100% !important;
    text-align: center !important;
  }

  .answer-box {
    font-size: 17px !important;
    padding: 14px 16px !important;
  }

  .solution-box {
    padding: 14px 16px !important;
  }

  .solution-box pre {
    font-size: 13px !important;
  }

  .note-text {
    font-size: 13px !important;
  }
}