/* UKF registration enhancement – scoped to BuddyPress registration only */
body.ukf-registration.buddypress.registration { min-height: 100dvh; }
body.ukf-registration #buddypress { padding: 28px 24px 48px; overflow-x: hidden; justify-content: flex-start; }
body.ukf-registration #buddypress .vkregister-logo { max-width: 92px; max-height: 92px; object-fit: contain; }
body.ukf-registration #buddypress .vkregister-form-title { max-width: 480px; margin: 20px auto 8px; font-size: clamp(22px, 2vw, 28px); line-height: 1.25; }
body.ukf-registration .ukf-benefits, body.ukf-registration .ukf-progress, body.ukf-registration #register-page { width: min(100%, 450px); margin-left: auto; margin-right: auto; }
body.ukf-registration .ukf-lead { font-size: 14px; line-height: 1.55; text-align: center; color: #d8e0fa; margin: 0 auto 15px; }
body.ukf-registration .ukf-benefit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
body.ukf-registration .ukf-benefit-grid > div { background: #222d50; border: 1px solid #364467; border-radius: 12px; min-width: 0; padding: 12px 5px; text-align: center; }
body.ukf-registration .ukf-benefit-grid span { display: block; color: #ae86ff; font-size: 24px; margin-bottom: 5px; }
body.ukf-registration .ukf-benefit-grid strong { color: #fff; font-size: 12px; line-height: 1.25; display: block; }
body.ukf-registration .ukf-free { font-size: 12px; color: #b9c4e4; text-align: center; margin: 12px 0 20px; }
body.ukf-registration .ukf-progress { padding-top: 4px; scroll-margin-top: 12px; }
body.ukf-registration .ukf-progress-dots { display: flex; align-items: center; justify-content: center; gap: 8px; }
body.ukf-registration .ukf-progress-dots span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; background: #303a59; color: #cbd3e7; }
body.ukf-registration .ukf-progress-dots span.is-current { background: #7449ed; color: #fff; }
body.ukf-registration .ukf-progress-dots span.is-done { background: #5337ab; color: #fff; }
body.ukf-registration .ukf-progress-dots i { display: block; width: 38px; height: 2px; background: #3e4866; }
body.ukf-registration .ukf-progress-label { font-size: 12px; font-weight: 700; color: #bbc8ec; text-align: center; margin: 9px 0 12px; }
body.ukf-registration #register-page form#signup_form { width: 100%; max-width: 450px; margin: 0; }
body.ukf-registration .ukf-stage[hidden], body.ukf-registration .ukf-controls [hidden] { display: none !important; }
body.ukf-registration .ukf-stage > h2 { color: #fff; font-size: 20px; line-height: 1.3; margin: 6px 0 8px; }
body.ukf-registration .ukf-stage > p { color: #bcc7e8; font-size: 13px; line-height: 1.45; margin: 0 0 16px; }
body.ukf-registration .ukf-stage label { display: block; margin-top: 13px; margin-bottom: 7px; line-height: 1.4; font-size: 13px; }
body.ukf-registration .ukf-stage input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.ukf-registration .ukf-stage select,body.ukf-registration .ukf-stage textarea { width: 100% !important; max-width: 100%; min-height: 46px; border-radius: 10px; box-sizing: border-box; }
body.ukf-registration .ukf-stage input[type="checkbox"] { width: auto; height: auto; vertical-align: middle; margin-right: 8px; }
body.ukf-registration .ukf-stage .register-section { width: 100%; }
body.ukf-registration .ukf-stage #profile-details-section { margin: 10px 0; }
body.ukf-registration .ukf-stage #profile-details-section > h2 { font-size: 17px; margin: 10px 0; }
body.ukf-registration .ukf-stage .submit { margin: 18px 0 0; }
body.ukf-registration .ukf-stage #signup_submit { min-height: 49px; width: 100%; max-width: 100%; background: #7449f5; color: #fff; border-radius: 11px; font-weight: 700; }
body.ukf-registration .ukf-controls { display: flex; gap: 10px; margin: 18px 0 5px; }
body.ukf-registration .ukf-controls button { min-height: 48px; border-radius: 11px; font-weight: 700; cursor: pointer; border: 1px solid #536184; }
body.ukf-registration .ukf-back { flex: 1; background: transparent; color: #fff; }
body.ukf-registration .ukf-next { flex: 2; background: #7449f5; border-color: #7449f5 !important; color: #fff; }
body.ukf-registration .vk-bp-register-page-nav { margin: 16px auto 0; }
body.ukf-registration .uk-hp-field { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 960px) {
  body.ukf-registration.buddypress.registration { display: block !important; height: auto !important; min-height: 100dvh; overflow-x: hidden !important; overflow-y: auto !important; }
  body.ukf-registration .vkregister-header { display: none !important; }
  body.ukf-registration #buddypress { width: 100% !important; min-height: 100dvh; height: auto !important; overflow: visible !important; padding: 24px 18px 44px !important; box-sizing: border-box; display: block !important; }
  body.ukf-registration #buddypress .vkregister-logo { max-width: 78px; max-height: 78px; }
  body.ukf-registration #buddypress .vkregister-form-title { margin: 16px auto 9px; }
  body.ukf-registration #buddypress .simplebar-wrapper, body.ukf-registration #buddypress .simplebar-mask,body.ukf-registration #buddypress .simplebar-offset,body.ukf-registration #buddypress .simplebar-content-wrapper { overflow: visible !important; height: auto !important; max-height: none !important; }
  body.ukf-registration #buddypress .simplebar-track { display: none !important; }
}
@media (max-width: 410px) { body.ukf-registration #buddypress { padding: 20px 14px 36px !important; } body.ukf-registration .ukf-benefit-grid { gap: 6px; } body.ukf-registration .ukf-benefit-grid strong { font-size: 11px; } }
/* 1.1.0 refinements: compact title, no duplicate headings, return navigation */
body.ukf-registration #buddypress { padding-top: 30px; padding-bottom: 32px; }
body.ukf-registration #buddypress .vkregister-logo { width: 82px; height: 82px; margin: 0 auto 8px; }
body.ukf-registration #buddypress .vkregister-form-title { width: min(100%,450px); margin: 8px auto 12px; font-size: clamp(22px,2vw,27px); line-height: 1.25; text-align: center; }
body.ukf-registration .ukf-lead { margin-bottom: 12px; }
body.ukf-registration .ukf-free { margin: 10px 0 12px; }
body.ukf-registration .ukf-progress-label { margin-bottom: 8px; }
body.ukf-registration #register-page form#signup_form { margin-top: 0 !important; }
body.ukf-registration .ukf-stage > h2 { margin: 3px 0 5px; }
body.ukf-registration .ukf-stage > p { margin-bottom: 12px; }
body.ukf-registration .ukf-autofilled-profile-field { display: none !important; }
body.ukf-registration .ukf-stage #profile-details-section:has(> .ukf-autofilled-profile-field:only-of-type) { margin: 0; }
body.ukf-registration .ukf-return-home { text-align: center; margin: 13px auto 0; font-size: 13px; }
body.ukf-registration .ukf-return-home a { color: #b8c6f0; text-decoration: underline; text-underline-offset: 3px; }
body.ukf-registration .ukf-return-home a:hover { color: #fff; }
@media (max-width: 960px) {
 body.ukf-registration #buddypress { padding-top: 20px !important; }
 body.ukf-registration #buddypress .vkregister-logo { width: 72px; height: 72px; }
 body.ukf-registration #buddypress .vkregister-form-title { margin: 8px auto 12px; }
 body.ukf-registration .ukf-benefits, body.ukf-registration .ukf-progress, body.ukf-registration #register-page { width: min(100%,450px); }
}

/* 1.2.0: unified centered heading and compact consent step */
body.ukf-registration #buddypress .ukf-benefits { display: flex; flex-direction: column; align-items: stretch; }
body.ukf-registration #buddypress .ukf-benefits .ukf-main-title {
  display: block !important; position: static !important; float: none !important;
  inset: auto !important; top: auto !important; left: auto !important;
  transform: none !important; translate: none !important;
  width: 100% !important; max-width: none !important;
  margin: 8px 0 12px !important; padding: 0 !important;
  text-align: center !important; line-height: 1.25 !important;
  font-size: clamp(23px, 2.4vw, 28px) !important;
}
body.ukf-registration .ukf-benefits .ukf-lead { margin: 0 0 13px; }
body.ukf-registration .ukf-benefits .ukf-free { margin: 11px 0 12px; }
body.ukf-registration .ukf-stage[data-stage="3"] > h2 { margin: 4px 0 7px; }
body.ukf-registration .ukf-stage[data-stage="3"] > p { margin-bottom: 16px; }
body.ukf-registration .ukf-stage #profile-details-section { margin: 0 0 10px; }
body.ukf-registration .ukf-consent-card { display: grid; gap: 0; border: 1px solid #3c486a; border-radius: 13px; padding: 3px 15px; background: #1b2646; }
body.ukf-registration .ukf-consent-card .ukf-consent-field { margin: 0 !important; padding: 14px 0 !important; min-height: 0; border: 0 !important; background: none !important; }
body.ukf-registration .ukf-consent-card .ukf-consent-field + .ukf-consent-field { border-top: 1px solid #384365 !important; }
body.ukf-registration .ukf-consent-card .ukf-consent-field > label:first-child,
body.ukf-registration .ukf-consent-card .ukf-consent-field > legend,
body.ukf-registration .ukf-consent-card .ukf-consent-field > .field-visibility-settings-notoggle { margin-top: 0; }
body.ukf-registration .ukf-consent-card .ukf-consent-field label { line-height: 1.5; margin-top: 3px; margin-bottom: 3px; }
body.ukf-registration .ukf-consent-card .ukf-consent-field input[type="checkbox"] { accent-color: #7849f5; width: 18px; height: 18px; }
body.ukf-registration .ukf-stage[data-stage="3"] .submit { margin-top: 14px; }
@media (max-width: 960px) {
  body.ukf-registration #buddypress .ukf-benefits .ukf-main-title { margin: 8px 0 12px !important; }
  body.ukf-registration .ukf-consent-card { padding-left: 12px; padding-right: 12px; }
}

/* 1.3.0 – robust checkbox controls and validation */
body.ukf-registration .ukf-validation-message:not([hidden]) {
  display:block; color:#fff; background:#512a45; border:1px solid #d27eaa;
  padding:11px 13px; border-radius:9px; margin:6px 0 16px; font-size:13px; line-height:1.5;
}
body.ukf-registration .ukf-consent-card .ukf-original-consent-label { display:none !important; }
body.ukf-registration .ukf-consent-card .ukf-original-consent-checkbox {
  position:absolute !important; left:-10000px !important; opacity:0 !important;
  pointer-events:none !important; width:1px !important; height:1px !important;
}
body.ukf-registration .ukf-consent-card .ukf-consent-choice {
  display:flex !important; align-items:flex-start; gap:11px; font-size:14px;
  color:#fff; line-height:1.5; margin:7px 0 0 !important; cursor:pointer;
}
body.ukf-registration .ukf-consent-card .ukf-consent-proxy {
  position:relative !important; flex:0 0 19px; display:block !important;
  width:19px !important; height:19px !important; margin:2px 0 0 !important;
  opacity:1 !important; pointer-events:auto !important; cursor:pointer;
  appearance:auto !important; -webkit-appearance:checkbox !important;
  accent-color:#7849f5; z-index:2;
}
body.ukf-registration .ukf-consent-card .ukf-consent-choice span { min-width:0; }
body.ukf-registration .ukf-consent-card .ukf-consent-choice a {
  color:#c8adff; text-decoration:underline; text-underline-offset:2px;
}
body.ukf-registration .ukf-consent-card .ukf-consent-missing { outline:1px solid #cf7daa; outline-offset:-2px; border-radius:8px; }
@media(max-width:600px) {
  body.ukf-registration .ukf-consent-card .ukf-consent-choice { font-size:14px; }
}

/* 1.4.0 – BuddyPress-completed and account-activation states */
body.ukf-activation-view #buddypress {
  padding: 26px 20px 44px !important;
  justify-content: flex-start !important;
  overflow-x: hidden;
}
body.ukf-activation-view #buddypress .vkregister-logo {
  display: block; width: 86px; height: 86px; object-fit: contain;
  margin: 8px auto 10px;
}
body.ukf-activation-view #buddypress > .vkregister-form-title {
  max-width: 460px; margin: 12px auto 8px !important;
  position: static !important; transform: none !important;
  text-align: center !important; font-size: clamp(21px,2.3vw,27px) !important;
  line-height: 1.28;
}
body.ukf-activation-view #register-page,
body.ukf-activation-view #activate-page {width: min(100%, 470px);margin: 0 auto !important;}
body.ukf-activation-view .ukf-activation-card { color: #fff; width: 100%; box-sizing: border-box; }
body.ukf-activation-view .ukf-activation-icon { display: grid; place-items:center; width:56px;height:56px; margin: 12px auto 13px; border-radius:50%; background:#28365c;color:#bd96ff;font-size:30px; }
body.ukf-activation-view .ukf-activation-heading { text-align:center; color:#fff; font-size:clamp(20px,2.3vw,25px); line-height:1.3; margin:0 0 8px; }
body.ukf-activation-view .ukf-activation-lead { text-align:center; color:#c9d5f5; font-size:14px; line-height:1.55; margin:0 0 24px; }
body.ukf-activation-view .ukf-guide-list { list-style:none!important; padding: 0!important; margin: 0 0 18px!important; display:grid; gap:14px; }
body.ukf-activation-view .ukf-guide-step { list-style:none!important; display:flex; align-items:flex-start; gap:12px; margin:0!important; padding:0!important; color:#fff; }
body.ukf-activation-view .ukf-guide-num { flex:none; background:#7749ed; border-radius:100%; width:29px;height:29px; display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px; }
body.ukf-activation-view .ukf-guide-step strong { display:block;font-size:14px;line-height:1.4;color:#fff; }
body.ukf-activation-view .ukf-guide-step p { margin:4px 0 0; color:#bdc9e6;line-height:1.5;font-size:13px; }
body.ukf-activation-view .ukf-activation-help { border:1px solid #3b4b74; border-radius:12px; padding:15px; background:#202b4b; }
body.ukf-activation-view .ukf-activation-help strong { color:#fff; font-size:14px; }
body.ukf-activation-view .ukf-activation-help p { margin:6px 0 0;line-height:1.5;font-size:13px;color:#c7d3ef; }
body.ukf-activation-view .ukf-activation-small { font-size:12px;color:#c9d3ef;text-align:center;line-height:1.5;margin:18px 0 0; }
body.ukf-activation-view .ukf-activation-actions {display:flex; flex-direction:column;gap:10px;margin:22px 0 0;text-align:center;}
body.ukf-activation-view .ukf-action-primary,body.ukf-activation-view .ukf-action-secondary { display:block; padding:14px 15px;border-radius:11px;text-decoration:none;line-height:1.3;font-size:14px;font-weight:700; }
body.ukf-activation-view .ukf-action-primary {background:#7749ed;color:#fff;}
body.ukf-activation-view .ukf-action-secondary {background:transparent;color:#c7d5fb;border:1px solid #495b83;}
body.ukf-activation-view .ukf-action-primary:hover {background:#895ef5;color:#fff;}
body.ukf-activation-view .ukf-action-secondary:hover {background:#263454;color:#fff;}
body.ukf-activation-view .ukf-activation-form-instructions {font-size:14px;line-height:1.6;color:#c7d4f2;margin:15px 0 20px;}
body.ukf-activation-view #activation-form {width:100%;max-width:none;}
body.ukf-activation-view #activation-form #key {width:100%;box-sizing:border-box;}
body.ukf-activation-view #activation-form input[type="submit"] {background:#7749ed;color:#fff; border-radius:10px;min-height:48px;width:100%;cursor:pointer;}
body.ukf-activation-view #activate-page #template-notices:not(:empty) {margin-bottom:14px;}
body.ukf-activation-view [hidden] {display:none!important;}
@media(max-width:960px) {
  body.ukf-activation-view .vkregister-header {display:none!important;}
  body.ukf-activation-view.buddypress {display:block!important;height:auto!important;min-height:100dvh!important;overflow-y:auto!important;}
  body.ukf-activation-view #buddypress {width:100%!important;height:auto!important;min-height:100dvh!important;overflow:visible!important;box-sizing:border-box;padding:18px 17px 38px!important;display:block!important;}
  body.ukf-activation-view #buddypress .simplebar-wrapper,body.ukf-activation-view #buddypress .simplebar-mask,body.ukf-activation-view #buddypress .simplebar-offset,body.ukf-activation-view #buddypress .simplebar-content-wrapper {height:auto!important;max-height:none!important;overflow:visible!important;}
  body.ukf-activation-view #buddypress .simplebar-track {display:none!important;}
  body.ukf-activation-view #buddypress .vkregister-logo {width:70px;height:70px;}
}


/* 1.4.2 – registration/activation support form */
body.ukf-contact-is-open { overflow: hidden !important; }
.ukf-contact-modal[hidden] { display:none!important; }
.ukf-contact-modal { position:fixed; inset:0; z-index:2147483000; display:flex; align-items:center; justify-content:center; padding:16px; box-sizing:border-box; }
.ukf-contact-backdrop { position:absolute; inset:0; background:rgba(5,8,19,.82); }
.ukf-contact-dialog { position:relative; box-sizing:border-box; width:100%; max-width:500px; max-height:calc(100dvh - 32px); overflow-y:auto; background:#19233e; border:1px solid #4a5477; box-shadow:0 22px 80px rgba(0,0,0,.55); border-radius:17px; padding:26px 24px; color:#fff; }
.ukf-contact-dialog h2 { color:#fff; font-size:23px; line-height:1.3; margin:0 34px 9px 0; }
.ukf-contact-dialog p { color:#cbd5ee; line-height:1.55; font-size:14px; margin:0 0 19px; }
.ukf-contact-close { position:absolute; right:12px; top:12px; color:#fff!important; border:0!important; background:transparent!important; font-size:28px; width:38px; height:38px; cursor:pointer; }
.ukf-contact-dialog label { display:block; margin:13px 0 6px; font-size:13px; font-weight:700; color:#fff; }
.ukf-contact-dialog input[type="email"], .ukf-contact-dialog select, .ukf-contact-dialog textarea { display:block; box-sizing:border-box; width:100%; min-height:44px; padding:11px 12px; background:#101a31!important; border:1px solid #546185!important; border-radius:9px!important; color:#fff!important; font:inherit; font-size:16px; }
.ukf-contact-dialog select { color-scheme:dark; }
.ukf-contact-dialog textarea { resize:vertical; }
.ukf-contact-dialog .ukf-contact-send { display:block; width:100%; min-height:48px; margin-top:20px; background:#7024e2!important; border:0!important; border-radius:9px!important; color:#fff!important; font-weight:700; cursor:pointer; font-size:14px; }
.ukf-contact-dialog .ukf-contact-send:disabled { opacity:.7; cursor:wait; }
.ukf-contact-open { display:block; box-sizing:border-box; width:100%; border:1px solid #697ca8!important; border-radius:10px!important; color:#e6dcff!important; background:transparent!important; text-decoration:none!important; cursor:pointer; padding:12px 14px!important; font-size:14px!important; font-weight:700!important; margin:14px 0 0!important; }
.ukf-contact-open:hover { background:#303d62!important; }
.ukf-contact-feedback:not([hidden]) { padding:12px 14px; margin:0 0 15px; border-radius:9px; font-size:13px; line-height:1.5; }
.ukf-contact-feedback.is-success { color:#bdf1d3; background:#153d31; }
.ukf-contact-feedback.is-error { color:#ffe2e2; background:#542534; }
.ukf-contact-hp { position:absolute!important; left:-10000px!important; opacity:0!important; width:1px!important; height:1px!important; overflow:hidden!important; pointer-events:none!important; }
@media(max-width:600px) { .ukf-contact-dialog { padding:22px 17px; max-height:calc(100dvh - 20px); } .ukf-contact-modal { padding:10px; } .ukf-contact-dialog h2 { font-size:20px; } }

/* 1.4.3: ennakkotarkistus, apulinkki ja luettava modaaliteksti */
body.ukf-registration .ukf-availability-note { margin:5px 0 13px!important; font-size:12px; line-height:1.45; min-height:0; }
body.ukf-registration .ukf-availability-note:empty { display:none; }
body.ukf-registration .ukf-availability-note.is-error { color:#ffaaaa; }
body.ukf-registration .ukf-availability-note.is-success { color:#a8efcc; }
body.ukf-registration .ukf-availability-note.is-pending { color:#cbd3e8; }
body.ukf-registration .ukf-next:disabled { opacity:.65; cursor:wait; }
.ukf-contact-text-link { display:block; width:max-content; max-width:100%; margin:14px auto 24px!important; color:#c9b2ff!important; font-size:13px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; text-align:center; }
.ukf-contact-text-link:hover { color:#fff!important; }
.ukf-contact-dialog p, .ukf-contact-dialog textarea, .ukf-contact-dialog label { overflow-wrap:break-word; word-break:normal; hyphens:none; }
.ukf-contact-dialog .ukf-contact-safety { margin:9px 0 2px!important; color:#cbd5ee; font-size:12px; line-height:1.55; }
@media(max-width:600px) { .ukf-contact-dialog .ukf-contact-safety { font-size:12px; } }
