.cs-main { max-width: 56rem; padding-block: var(--mb-space-8) var(--mb-space-12); }
.cs-heading { display: flex; align-items: start; justify-content: space-between; gap: var(--mb-space-4); margin-bottom: var(--mb-space-4); }
.cs-heading h1 { margin-bottom: var(--mb-space-3); }
.cs-heading p { color: var(--mb-text-secondary); }
.cs-language { flex: none; min-height: var(--mb-target-min); padding: var(--mb-space-2) var(--mb-space-4); background: var(--mb-surface); border: 1px solid var(--mb-control-border); border-radius: var(--mb-radius-control); color: var(--mb-brand); cursor: pointer; }
.cs-panel { background: var(--mb-surface); border: 1px solid var(--mb-border); border-radius: var(--mb-radius-card); padding: var(--mb-space-8); }
.cs-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mb-space-6); margin-bottom: var(--mb-space-6); }
.cs-field { display: grid; gap: var(--mb-space-2); min-width: 0; font-weight: var(--mb-weight-medium); }
.cs-field select { width: 100%; min-height: 3.25rem; padding: var(--mb-space-3); border: 1px solid var(--mb-control-border); border-radius: var(--mb-radius-control); background: var(--mb-surface); color: var(--mb-text); font-weight: var(--mb-weight-regular); }
.cs-field select[aria-invalid="true"] { border-color: var(--mb-danger); }
.cs-error { color: var(--mb-danger); margin-bottom: var(--mb-space-4); }
.cs-error:empty { display: none; }
.cs-calculate { width: 100%; }
.cs-note { color: var(--mb-text-muted); font-size: var(--mb-text-sm); text-align: center; margin-top: var(--mb-space-4); }
.cs-next { margin-top: var(--mb-space-6); text-align: center; }
.cs-rules { margin-top: var(--mb-space-8); color: var(--mb-text-secondary); font-size: var(--mb-text-sm); }
.cs-rules summary { cursor: pointer; min-height: var(--mb-target-min); display: list-item; padding-block: var(--mb-space-3); }
.cs-rules p { margin-top: var(--mb-space-3); }
.cs-rules ul { padding-left: var(--mb-space-6); margin-block: var(--mb-space-2); }
.cs-dialog { width: min(34rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 1px solid var(--mb-border); border-radius: 1rem; background: var(--mb-surface); color: var(--mb-text); box-shadow: var(--mb-shadow-overlay); overflow: auto; }
.cs-dialog::backdrop { background: rgb(24 35 54 / 50%); }
.cs-dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--mb-space-4); padding: var(--mb-space-3) var(--mb-space-5); border-bottom: 1px solid var(--mb-border); }
.cs-dialog-bar p { font-size: var(--mb-text-sm); font-weight: var(--mb-weight-medium); }
.cs-close { display: inline-grid; place-items: center; width: var(--mb-target-min); height: var(--mb-target-min); background: transparent; border: 0; border-radius: var(--mb-radius-control); color: var(--mb-text-secondary); cursor: pointer; font-size: 1.75rem; }
.cs-close:hover { background: var(--mb-brand-soft); }
.cs-result { padding: var(--mb-space-8); text-align: center; background: linear-gradient(180deg, var(--mb-brand-soft), var(--mb-surface)); }
.cs-result h2 { font-size: clamp(1.5rem, 5vw, 2rem); letter-spacing: .03em; }
.cs-number { display: flex; align-items: baseline; justify-content: center; gap: var(--mb-space-2); margin-block: var(--mb-space-5) var(--mb-space-3); color: var(--mb-brand); }
.cs-number strong { font-size: 5.5rem; line-height: 1.1; font-weight: var(--mb-weight-bold); }
.cs-number span { font-size: var(--mb-text-lg); color: var(--mb-text-muted); }
.cs-tier { font-weight: var(--mb-weight-medium); font-size: var(--mb-text-lg); margin-bottom: var(--mb-space-3); }
.cs-tip { color: var(--mb-text-secondary); max-width: 26rem; margin-inline: auto; }
.cs-dialog-actions { padding: var(--mb-space-5); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mb-space-3); }
.cs-export-note { grid-column: 1 / -1; text-align: center; font-size: var(--mb-text-sm); color: var(--mb-text-muted); }
.cs-download-slot { grid-column: 1 / -1; }
.cs-download { display: block; text-align: center; padding: var(--mb-space-2); }
@media (max-width: 39.999rem) {
  .cs-main { padding-top: var(--mb-space-6); }
  .cs-heading { flex-wrap: wrap; margin-bottom: var(--mb-space-6); }
  .cs-heading > div { flex: 1 1 12rem; }
  .cs-heading h1 { font-size: 1.75rem; }
  .cs-panel { padding: var(--mb-space-5); }
  .cs-fields { grid-template-columns: minmax(0, 1fr); gap: var(--mb-space-5); }
  .cs-result { padding: var(--mb-space-6) var(--mb-space-5); }
  .cs-number strong { font-size: 4.5rem; }
  .cs-dialog-actions { grid-template-columns: minmax(0, 1fr); }
}
