.ahb-widget {
  --ahb-accent: #e30613;
  --ahb-ink: #16181d;
  --ahb-muted: #6b7280;
  --ahb-line: #e5e7eb;
  --ahb-soft: #f5f6f8;
  --ahb-bg: #ffffff;
  --ahb-radius: 12px;
  box-sizing: border-box;
  max-width: 640px;
  margin: 0 auto;
  padding: 20px;
  background: var(--ahb-bg);
  color: var(--ahb-ink);
  border: 1px solid var(--ahb-line);
  border-radius: 16px;
  font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  text-align: left;
}
.ahb-widget *, .ahb-widget *::before, .ahb-widget *::after { box-sizing: border-box; }
.ahb-widget button { font: inherit; color: inherit; cursor: pointer; margin: 0; text-transform: none; letter-spacing: normal; box-shadow: none; }

.ahb-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.ahb-title { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.ahb-langs { display: inline-flex; border: 1px solid var(--ahb-line); border-radius: 999px; padding: 2px; }
.ahb-widget .ahb-lang { border: 0; background: transparent; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--ahb-muted); }
.ahb-widget .ahb-lang.is-on { background: var(--ahb-ink); color: #fff; }

.ahb-steps { list-style: none; margin: 0 0 16px; padding: 0; display: flex; gap: 6px; }
.ahb-steps li { flex: 1; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ahb-muted); padding-bottom: 8px; border-bottom: 3px solid var(--ahb-line); margin: 0; }
.ahb-steps li span { width: 20px; height: 20px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 11px; font-weight: 700; background: var(--ahb-soft); }
.ahb-steps li.is-on { color: var(--ahb-ink); font-weight: 600; border-color: var(--ahb-accent); }
.ahb-steps li.is-on span { background: var(--ahb-accent); color: #fff; }
.ahb-steps li.is-done { border-color: var(--ahb-ink); }
.ahb-steps li.is-done span { background: var(--ahb-ink); color: #fff; }

.ahb-label { margin: 4px 0 8px; font-weight: 600; font-size: 14px; }
.ahb-summary { background: var(--ahb-soft); border-radius: var(--ahb-radius); padding: 10px 12px; margin-bottom: 12px; font-size: 14px; }

.ahb-services { display: grid; gap: 8px; }
.ahb-widget .ahb-service { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 14px 16px; background: var(--ahb-bg); border: 1px solid var(--ahb-line); border-radius: var(--ahb-radius); transition: border-color .15s, transform .15s; }
.ahb-widget .ahb-service:hover, .ahb-widget .ahb-service:focus-visible { border-color: var(--ahb-accent); outline: none; }
.ahb-sname { font-weight: 600; }
.ahb-smeta { color: var(--ahb-muted); font-size: 13px; white-space: nowrap; }

.ahb-days { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin-bottom: 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.ahb-widget .ahb-day { flex: 0 0 64px; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; padding: 8px 4px; border: 1px solid var(--ahb-line); border-radius: var(--ahb-radius); background: var(--ahb-bg); line-height: 1.15; }
.ahb-dw { font-size: 12px; color: var(--ahb-muted); }
.ahb-dn { font-size: 20px; font-weight: 700; }
.ahb-dm { font-size: 12px; color: var(--ahb-muted); }
.ahb-widget .ahb-day.is-on { background: var(--ahb-ink); border-color: var(--ahb-ink); color: #fff; }
.ahb-widget .ahb-day.is-on .ahb-dw, .ahb-widget .ahb-day.is-on .ahb-dm { color: rgba(255,255,255,.75); }

.ahb-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.ahb-widget .ahb-time { padding: 10px 0; border: 1px solid var(--ahb-line); border-radius: 10px; background: var(--ahb-bg); font-weight: 600; font-variant-numeric: tabular-nums; }
.ahb-widget .ahb-time:hover, .ahb-widget .ahb-time.is-on { border-color: var(--ahb-accent); color: var(--ahb-accent); }

.ahb-form { display: grid; gap: 10px; }
.ahb-row { display: grid; grid-template-columns: 1fr 130px; gap: 10px; }
.ahb-field { display: grid; gap: 4px; margin: 0; }
.ahb-field > span { font-size: 13px; color: var(--ahb-muted); }
.ahb-widget .ahb-field input, .ahb-widget .ahb-field textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--ahb-line); border-radius: 10px; background: var(--ahb-bg); font: inherit; color: var(--ahb-ink); margin: 0; box-shadow: none; }
.ahb-widget .ahb-field input:focus, .ahb-widget .ahb-field textarea:focus { outline: 2px solid var(--ahb-accent); outline-offset: -1px; border-color: transparent; }
.ahb-widget .ahb-plate { text-transform: uppercase; }
.ahb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.ahb-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--ahb-muted); margin: 4px 0 0; }
.ahb-consent input { margin-top: 3px; accent-color: var(--ahb-accent); width: 16px; height: 16px; flex: 0 0 auto; }
.ahb-consent a { color: inherit; text-decoration: underline; }

.ahb-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; }
.ahb-widget .ahb-btn { padding: 12px 18px; border-radius: 10px; font-weight: 600; border: 1px solid transparent; }
.ahb-widget .ahb-btn-main { background: var(--ahb-accent); color: #fff; flex: 1; max-width: 260px; margin-left: auto; }
.ahb-widget .ahb-btn-main:hover { filter: brightness(.95); }
.ahb-widget .ahb-btn-main[disabled] { opacity: .6; cursor: progress; }
.ahb-widget .ahb-btn-ghost { background: transparent; border-color: var(--ahb-line); }

.ahb-error { color: #b42318; background: #fef3f2; border-radius: 10px; padding: 10px 12px; margin: 8px 0 0; font-size: 14px; }
.ahb-empty { color: var(--ahb-muted); background: var(--ahb-soft); border-radius: 10px; padding: 14px; margin: 0; }
.ahb-muted { color: var(--ahb-muted); font-size: 14px; }
.ahb-muted a { color: var(--ahb-ink); font-weight: 600; }

.ahb-done { text-align: center; padding: 12px 0 4px; }
.ahb-check { width: 56px; height: 56px; margin: 0 auto 10px; border-radius: 50%; background: #12b76a; color: #fff; display: grid; place-items: center; font-size: 28px; font-weight: 700; }
.ahb-done h3 { margin: 0 0 6px; font-size: 20px; }
.ahb-done-when { font-weight: 600; }

.ahb-loader { height: 40px; margin: 16px auto; width: 40px; border-radius: 50%; border: 3px solid var(--ahb-line); border-top-color: var(--ahb-accent); animation: ahb-spin .8s linear infinite; }
@keyframes ahb-spin { to { transform: rotate(360deg); } }

@media (max-width: 480px) {
  .ahb-widget { padding: 16px; border-radius: 12px; }
  .ahb-row { grid-template-columns: 1fr; }
  .ahb-steps li { font-size: 0; gap: 0; justify-content: center; }
  .ahb-steps li span { font-size: 11px; }
  .ahb-smeta { white-space: normal; text-align: right; }
}

.ahb-wheels { display: flex; flex-wrap: wrap; gap: 6px; }
.ahb-widget .ahb-wheel { min-width: 52px; padding: 9px 10px; border: 1px solid var(--ahb-line); border-radius: 10px; background: var(--ahb-bg); font-weight: 600; font-variant-numeric: tabular-nums; }
.ahb-widget .ahb-wheel:hover { border-color: var(--ahb-accent); }
.ahb-widget .ahb-wheel.is-on { background: var(--ahb-ink); border-color: var(--ahb-ink); color: #fff; }
.ahb-widget .ahb-wheel.is-no { color: #98a2b3; border-style: dashed; text-decoration: line-through; }
.ahb-note { color: var(--ahb-muted); font-size: 12px; }

.ahb-cal-links { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 14px 0; }
.ahb-widget .ahb-cal-links .ahb-btn { text-decoration: none; display: inline-block; max-width: none; margin: 0; }
