:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #eef3f9;
  color: #14213a;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.card { width: min(100%, 30rem); background: #fff; border: 1px solid #dfe7f1; border-radius: 1.25rem; padding: 1.5rem; box-shadow: 0 1rem 3rem #14213a14; }
h1 { margin: .25rem 0 .75rem; font-size: clamp(1.75rem, 8vw, 2.35rem); line-height: 1.05; }
h2 { margin: 1.5rem 0 .65rem; font-size: 1.1rem; }
.eyebrow { margin: 0; color: #42628a; font-size: .8rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
label, legend { font-weight: 700; }
input[type="tel"] { width: 100%; min-height: 3rem; margin-top: .45rem; border: 1px solid #9caec4; border-radius: .7rem; padding: .75rem; font: inherit; }
input[type="tel"]:focus { outline: 3px solid #155eef2e; border-color: #155eef; }
.hint { margin: .45rem 0 1.25rem; color: #52657d; font-size: .86rem; }
fieldset { margin: 0 0 1.25rem; padding: 0; border: 0; }
legend { margin-bottom: .5rem; }
.tariff-option { display: flex; align-items: center; gap: .75rem; margin: .5rem 0; padding: .85rem; border: 1px solid #d4deeb; border-radius: .8rem; cursor: pointer; }
.tariff-option:has(input:checked) { border-color: #155eef; background: #f0f5ff; }
.tariff-option input { width: 1.2rem; height: 1.2rem; }
.tariff-option span { display: flex; flex: 1; justify-content: space-between; gap: 1rem; }
.tariff-option small { color: #334d6e; font-size: .95rem; white-space: nowrap; }
button, a { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; border: 0; border-radius: .7rem; padding: .8rem 1rem; background: #155eef; color: #fff; font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
button { width: 100%; }
[hidden] { display: none !important; }
.notice { padding: .85rem; border-radius: .7rem; background: #edf3fb; color: #263f60; }
.notice-error { background: #fff0f0; color: #8f1d1d; }
.status { padding: .85rem; border-radius: .7rem; background: #f0f5ff; font-weight: 750; }
.summary { margin: 1rem 0; }
.summary div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid #e5ebf3; }
.summary dt { color: #52657d; }
.summary dd { margin: 0; text-align: right; font-weight: 700; }
.payment-block { margin: 1rem 0; padding: 1rem; border: 1px solid #f1d2d2; border-radius: .9rem; }
.payment-block h2 { margin-top: 0; }
.kaspi-payment-brand { display: block; width: 100%; height: auto; margin: .75rem 0; }
.demo-block { margin: 1rem 0; padding: 1rem; border: 2px solid #a15c00; border-radius: .9rem; background: #fff8e8; color: #633b00; }
.demo-label { margin: 0 0 .5rem; font-weight: 850; letter-spacing: .05em; }
ol { padding-left: 1.3rem; }
li + li { margin-top: .45rem; }
