.weighted-grade-main { max-width: 680px; }
.weighted-grade-form, .weighted-grade-result { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow); }
.weighted-grade-form { display: grid; gap: 15px; }
.weighted-grade-entries { display: grid; gap: 12px; }
.weighted-grade-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px; gap: 10px; align-items: end; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 13px; }
.weighted-grade-row legend { padding: 0 5px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.weighted-grade-row label { display: grid; gap: 6px; color: var(--ink); font-size: 12px; font-weight: 650; }
.weighted-grade-row input { width: 100%; min-width: 0; min-height: 44px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); color: var(--ink); font: inherit; }
.weighted-grade-remove { width: 40px; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); color: var(--danger); font-size: 20px; cursor: pointer; }
.weighted-grade-remove[hidden] { display: none; }
.weighted-grade-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.weighted-grade-actions button { min-height: 44px; padding: 0 15px; }
.weighted-grade-actions button:disabled { opacity: .55; cursor: not-allowed; }
.weighted-grade-error { margin: 0; color: var(--danger); font-size: 12px; }
.weighted-grade-result { margin-top: 15px; text-align: center; }
.weighted-grade-result h2 { margin: 0 0 7px; color: var(--ink-soft); font-size: 13px; }
.weighted-grade-result output { display: block; color: var(--accent); font-size: clamp(32px, 8vw, 46px); font-weight: 750; font-variant-numeric: tabular-nums; }
.weighted-grade-result p { margin: 8px 0 0; color: var(--ink-soft); font-size: 13px; }
@media (max-width: 500px) {
  .weighted-grade-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px; gap: 8px; padding: 12px; }
  .weighted-grade-form, .weighted-grade-result { padding: 17px; }
}
