.jie-estimator {
  --jie-ink: #000000;
  --jie-muted: #000000;
  --jie-border: #d8e0ea;
  --jie-surface: #ffffff;
  --jie-soft: #f5f7fb;
  --jie-accent: #0f766e;
  --jie-accent-ink: #e6fffb;
  --jie-warning: #b45309;
  --jie-warning-bg: #fff7ed;
  color: var(--jie-ink);
  font: inherit;
}

.jie-estimator,
.jie-estimator p,
.jie-estimator li,
.jie-estimator dt,
.jie-estimator dd,
.jie-estimator label,
.jie-estimator input,
.jie-estimator select,
.jie-estimator textarea {
  color: var(--jie-ink);
}

.jie-estimator__loading {
  padding: 1rem;
  border: 1px solid var(--jie-border);
  border-radius: 18px;
  background: var(--jie-surface);
}

.jie-panel {
  background:
    radial-gradient(circle at top right, rgba(15, 118, 110, 0.12), transparent 35%),
    linear-gradient(180deg, #ffffff, #f8fbfd);
  border: 1px solid var(--jie-border);
  border-radius: 24px;
  padding: 1.5rem;
  box-shadow: 0 12px 30px rgba(19, 34, 56, 0.08);
}

.jie-panel__header,
.jie-panel__footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.jie-panel h2,
.jie-breakdown h3 {
  margin: 0;
  color: var(--jie-ink);
}

.jie-subtitle,
.jie-disclaimer,
.jie-card__help,
.jie-meta span {
  color: var(--jie-muted);
}

.jie-grid {
  display: grid;
  grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.jie-form,
.jie-results,
.jie-breakdown {
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--jie-border);
  border-radius: 20px;
  padding: 1rem;
}

.jie-field,
.jie-toggle {
  display: block;
}

.jie-field + .jie-field,
.jie-field + .jie-toggle,
.jie-toggle + .jie-toggle,
.jie-toggle + .jie-form__note {
  margin-top: 0.85rem;
}

.jie-field span {
  display: block;
  margin-bottom: 0.35rem;
  font-weight: 600;
}

.jie-field select,
.jie-field input {
  width: 100%;
  min-height: 46px;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--jie-border);
  border-radius: 14px;
  background: var(--jie-surface);
  color: var(--jie-ink);
}

.jie-field input:disabled,
.jie-field select:disabled,
.jie-toggle input:disabled + span {
  opacity: 0.72;
}

.jie-toggle {
  display: flex;
  gap: 0.65rem;
  align-items: start;
  padding: 0.8rem 0.9rem;
  border-radius: 14px;
  background: var(--jie-soft);
}

.jie-toggle input {
  margin-top: 0.15rem;
}

.jie-estimator .jie-form__note,
.jie-estimator .jie-form__note strong {
  color: #b91c1c !important;
  font-weight: 700 !important;
}

.jie-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.jie-card {
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid var(--jie-border);
  background: var(--jie-surface);
}

.jie-card--primary {
  background: linear-gradient(180deg, #0f766e, #115e59);
  color: var(--jie-accent-ink);
  border-color: transparent;
}

.jie-card--primary .jie-card__help,
.jie-card--primary .jie-card__label {
  color: rgba(230, 255, 251, 0.82);
}

.jie-card--warning {
  background: var(--jie-warning-bg);
  border-color: rgba(180, 83, 9, 0.2);
}

.jie-card--warning .jie-card__value,
.jie-card--warning .jie-card__help strong {
  color: #9a3412;
}

.jie-card__label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--jie-muted);
}

.jie-card__value {
  margin-top: 0.4rem;
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  font-weight: 700;
}

.jie-breakdown {
  margin-top: 1rem;
}

.jie-breakdown__list {
  margin: 1rem 0 0;
}

.jie-breakdown__list div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--jie-border);
}

.jie-breakdown__list dt {
  font-weight: 600;
}

.jie-breakdown__list dd {
  margin: 0;
  text-align: right;
}

.jie-notices,
.jie-messages {
  margin: 1rem 0 0;
  padding-left: 1.25rem;
}

.jie-notices li,
.jie-messages li {
  margin-top: 0.45rem;
}

.jie-violations {
  margin: 0.45rem 0 0;
  padding-left: 1.2rem;
}

.jie-violations li {
  margin-top: 0.35rem;
  font-weight: 700;
  color: #9a3412;
}

.jie-meta__item {
  min-width: 140px;
  padding: 0.85rem 1rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--jie-border);
}

.jie-meta__item strong,
.jie-meta__item span {
  display: block;
}

.jie-meta__item strong {
  margin-top: 0.2rem;
}

.jie-panel__footer {
  margin-top: 1rem;
}

@media (max-width: 960px) {
  .jie-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .jie-panel {
    padding: 1rem;
    border-radius: 18px;
  }

  .jie-panel__header,
  .jie-panel__footer {
    flex-direction: column;
  }

  .jie-card-grid {
    grid-template-columns: 1fr;
  }

  .jie-breakdown__list div {
    flex-direction: column;
  }

  .jie-breakdown__list dd {
    text-align: left;
  }
}
