{"id":3641,"date":"2025-11-21T13:45:37","date_gmt":"2025-11-21T13:45:37","guid":{"rendered":"https:\/\/r14.ee\/login\/"},"modified":"2026-08-08T16:31:13","modified_gmt":"2026-08-08T16:31:13","slug":"login","status":"publish","type":"page","link":"https:\/\/r14.ee\/en\/r14-veinid\/login\/","title":{"rendered":"Login"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3641\" class=\"elementor elementor-3641\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5297062 e-con-full e-flex e-con e-parent\" data-id=\"5297062\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e05c58e e-con-full e-flex e-con e-child\" data-id=\"e05c58e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce0142f elementor-widget elementor-widget-image\" data-id=\"ce0142f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-1024x1024.png\" class=\"attachment-large size-large wp-image-2472\" alt=\"\" srcset=\"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-1024x1024.png 1024w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-600x600.png 600w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-150x150.png 150w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-300x300.png 300w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-768x768.png 768w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-500x500.png 500w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-800x800.png 800w, https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e89b5b8 elementor-widget elementor-widget-heading\" data-id=\"e89b5b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Valmis j\u00e4rgmiseks lonksuks? <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7950ad2 elementor-widget elementor-widget-text-editor\" data-id=\"7950ad2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tSul ei ole kontot? <a href=\"https:\/\/r14.ee\/r14-veinid\/registration\/\">Registreeru siin<\/a> \t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b125a72 elementor-widget__width-initial elementor-widget elementor-widget-shortcode\" data-id=\"b125a72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<form class=\"ca-form ca-ajax\" method=\"post\" action=\"https:\/\/r14.ee\/en\/r14-veinid\/login\/\" data-action=\"ca_login\" novalidate>\n\t\t\t<input type=\"hidden\" name=\"r14_lang\" value=\"en\">\n\t\t\t<div class=\"ca-notice\" role=\"alert\" aria-live=\"polite\"><\/div>\t\t\t<input type=\"hidden\" id=\"ca_login_nonce\" name=\"ca_login_nonce\" value=\"1cd324c37f\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/3641\" \/>\t\t\t<input type=\"hidden\" name=\"ca_action\" value=\"login\">\n\t\t\t\t\t\t<input type=\"hidden\" name=\"ca_back\" value=\"https:\/\/r14.ee\/en\/r14-veinid\/login\/\">\n\n\t\t\t<p class=\"ca-field\">\n\t\t\t\t<label for=\"ca_user\">Username or email<\/label>\n\t\t\t\t<input type=\"text\" id=\"ca_user\" name=\"ca_user\" autocomplete=\"username\" autocapitalize=\"none\" autocorrect=\"off\" spellcheck=\"false\" required\n\t\t\t\t\tdata-required-msg=\"Please enter your username or email address.\">\n\t\t\t<\/p>\n\n\t\t\t\t\t<p class=\"ca-field\">\n\t\t\t<label for=\"ca_pass\">Password<\/label>\n\t\t\t<span class=\"ca-pass-wrap\">\n\t\t\t\t<input type=\"password\" id=\"ca_pass\" name=\"ca_pass\"\n\t\t\t\t\tautocomplete=\"current-password\" required data-required-msg=\"Please enter your password.\">\n\t\t\t\t<button type=\"button\" class=\"ca-pass-toggle\" data-target=\"ca_pass\"\n\t\t\t\t\tdata-show-label=\"Show password\"\n\t\t\t\t\tdata-hide-label=\"Hide password\"\n\t\t\t\t\taria-label=\"Show password\" aria-pressed=\"false\">\n\t\t\t\t\t<svg class=\"ca-eye-on\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n\t\t\t\t\t\tstroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t\t<path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n\t\t\t\t\t\t<circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n\t\t\t\t\t<\/svg>\n\t\t\t\t\t<svg class=\"ca-eye-off\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n\t\t\t\t\t\tstroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t\t<path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"><\/path>\n\t\t\t\t\t\t<line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"><\/line>\n\t\t\t\t\t<\/svg>\n\t\t\t\t<\/button>\n\t\t\t<\/span>\n\t\t\t\t\t<\/p>\n\t\t\n\t\t\t<p class=\"ca-field ca-forgot\">\n\t\t\t\t<a href=\"https:\/\/r14.ee\/en\/r14-veinid\/unustasid-parooli\/\">Forgot your password?<\/a>\n\t\t\t<\/p>\n\n\t\t\t<p class=\"ca-field ca-honeypot\" aria-hidden=\"true\">\n\t\t\t\t<label for=\"ca_website_l\">Website<\/label>\n\t\t\t\t<input type=\"text\" id=\"ca_website_l\" name=\"ca_website\" tabindex=\"-1\" autocomplete=\"off\">\n\t\t\t<\/p>\n\n\t\t\t<p class=\"ca-field ca-remember\">\n\t\t\t\t<label>\n\t\t\t\t\t<input type=\"checkbox\" name=\"ca_remember\" value=\"1\">\n\t\t\t\t\tRemember me\t\t\t\t<\/label>\n\t\t\t<\/p>\n\n\t\t\t<p class=\"ca-field\">\n\t\t\t\t<button type=\"submit\" class=\"ca-button\" data-loading=\"Logging in...\">Log in<\/button>\n\t\t\t<\/p>\n\t\t<\/form>\n\t\t\t\t<style>\n\t\t\t.ca-form {\n\t\t\t\t\/* Brand colors, change once here to restyle everything. *\/\n\t\t\t\t--ca-bg: #F2F2F2;\n\t\t\t\t--ca-ink: #262626;\n\t\t\t\t--ca-accent: #B89066;\n\t\t\t}\n\t\t\t\/* Panel wrapper, headings and supporting text. Shared by any\n\t\t\t   form that opts into .ca-panel, not just lost password. *\/\n\t\t\t.ca-panel {\n\t\t\t\twidth: 100%;\n\t\t\t\tmax-width: 460px;\n\t\t\t\tcolor: var(--ca-ink);\n\t\t\t}\n\t\t\t.ca-head { margin-bottom: 22px; }\n\t\t\t.ca-head__title {\n\t\t\t\tmargin: 0 0 8px;\n\t\t\t\tfont-size: 26px;\n\t\t\t\tline-height: 1.25;\n\t\t\t\tfont-weight: 700;\n\t\t\t\tcolor: var(--ca-ink);\n\t\t\t}\n\t\t\t.ca-head__sub {\n\t\t\t\tmargin: 0;\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tcolor: #6b6b6b;\n\t\t\t}\n\t\t\t.ca-hint {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin-top: 6px;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tcolor: #6b6b6b;\n\t\t\t}\n\t\t\t.ca-panel__foot {\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 18px;\n\t\t\t\tborder-top: 1px solid #e4e4e4;\n\t\t\t}\n\t\t\t.ca-note {\n\t\t\t\tmargin: 0 0 10px;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tcolor: #6b6b6b;\n\t\t\t}\n\t\t\t.ca-links {\n\t\t\t\tmargin: 0;\n\t\t\t\tfont-size: 14px;\n\t\t\t}\n\t\t\t.ca-links a { color: var(--ca-ink); text-decoration: underline; }\n\t\t\t.ca-links a:hover { color: var(--ca-accent); }\n\t\t\t@media (max-width: 480px) {\n\t\t\t\t.ca-head__title { font-size: 22px; }\n\t\t\t}\n\t\t\t.ca-honeypot { position: absolute !important; left: -9999px !important; }\n\t\t\t.ca-notice { display: none; margin-bottom: 1em; padding: .75em 1em; border-radius: 4px; font-size: 15px; }\n\t\t\t.ca-notice-error { display: block; background: #fde8e8; color: #b91c1c; }\n\t\t\t.ca-notice-success { display: block; background: #e6f6ec; color: #14532d; }\n\t\t\t.ca-form, .ca-form * { box-sizing: border-box; }\n\t\t\t.ca-form { width: 100%; color: var(--ca-ink); }\n\t\t\t.ca-form .ca-field { margin-bottom: 1em; }\n\t\t\t.ca-form label { display: block; margin-bottom: .3em; color: var(--ca-ink); font-weight: 500; }\n\t\t\t.ca-form input[type=text], .ca-form input[type=password], .ca-form input[type=email] {\n\t\t\t\twidth: 100%;\n\t\t\t\tfont-size: 16px; \/* Prevents iOS Safari auto-zoom on focus. *\/\n\t\t\t\tpadding: .65em .8em;\n\t\t\t\tmin-height: 44px; \/* Comfortable touch target. *\/\n\t\t\t\tcolor: var(--ca-ink);\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder: 1px solid #d6d6d6;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\toutline: none;\n\t\t\t\ttransition: border-color .15s ease, box-shadow .15s ease;\n\t\t\t}\n\t\t\t.ca-form input[type=text]:focus, .ca-form input[type=password]:focus, .ca-form input[type=email]:focus {\n\t\t\t\tborder-color: var(--ca-accent);\n\t\t\t\tbox-shadow: 0 0 0 3px rgba(184, 144, 102, .25);\n\t\t\t}\n\t\t\t.ca-form input[type=checkbox] { width: 1.1em; height: 1.1em; accent-color: var(--ca-accent); }\n\t\t\t.ca-form a { color: var(--ca-ink); text-decoration: underline; }\n\t\t\t.ca-form a:hover { color: var(--ca-accent); }\n\t\t\t.ca-forgot { margin-top: -.5em; font-size: 14px; }\n\t\t\t.ca-button {\n\t\t\t\twidth: 100%;\n\t\t\t\tfont-size: 16px;\n\t\t\t\tpadding: .7em 1em;\n\t\t\t\tmin-height: 44px;\n\t\t\t\tcursor: pointer;\n\t\t\t\tcolor: var(--ca-bg);\n\t\t\t\tbackground: var(--ca-ink);\n\t\t\t\tborder: 1px solid var(--ca-ink);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\ttransition: background .15s ease, border-color .15s ease;\n\t\t\t}\n\t\t\t.ca-button:hover, .ca-button:focus-visible {\n\t\t\t\tbackground: var(--ca-accent);\n\t\t\t\tborder-color: var(--ca-accent);\n\t\t\t}\n\t\t\t.ca-button[disabled] { opacity: .6; cursor: not-allowed; }\n\t\t\t.ca-button[disabled]:hover { background: var(--ca-ink); border-color: var(--ca-ink); }\n\t\t\t\/* Password field with show\/hide toggle.\n\t\t\t   Flex rather than absolute positioning, so the icon stays put\n\t\t\t   regardless of any wrapper another script adds around the\n\t\t\t   input on a full page load. *\/\n\t\t\t.ca-pass-wrap { display: flex; align-items: center; width: 100%; }\n\t\t\t.ca-pass-wrap > input,\n\t\t\t.ca-pass-wrap > .password-input { flex: 1 1 auto; min-width: 0; width: 100%; padding-right: 46px !important; }\n\t\t\t.ca-pass-wrap > .password-input > input { width: 100%; padding-right: 46px !important; }\n\t\t\t.ca-pass-toggle {\n\t\t\t\tposition: static;\n\t\t\t\tflex: 0 0 40px;\n\t\t\t\theight: 40px;\n\t\t\t\twidth: 40px;\n\t\t\t\tmargin-left: -44px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tbackground: none;\n\t\t\t\tborder: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tcursor: pointer;\n\t\t\t\tcolor: var(--ca-ink);\n\t\t\t\topacity: .65;\n\t\t\t\tz-index: 2;\n\t\t\t\ttransition: opacity .15s ease, color .15s ease;\n\t\t\t}\n\t\t\t.ca-pass-toggle:hover, .ca-pass-toggle:focus-visible { opacity: 1; color: var(--ca-accent); }\n\t\t\t\/* Icon sizing carries no display property: setting one here\n\t\t\t   would override the show\/hide rules and reveal both eyes. *\/\n\t\t\t.ca-pass-toggle svg { width: 20px; height: 20px; }\n\t\t\t.ca-pass-toggle .ca-eye-on { display: block; }\n\t\t\t.ca-pass-toggle .ca-eye-off { display: none; }\n\t\t\t.ca-pass-toggle.is-visible .ca-eye-on { display: none; }\n\t\t\t.ca-pass-toggle.is-visible .ca-eye-off { display: block; }\n\t\t\t.ca-pass-wrap > button:not(.ca-pass-toggle),\n\t\t\t.ca-pass-wrap .show-password-input { display: none !important; }\n.r14-pw-rules {\n\tlist-style: none;\n\tmargin: 8px 0 0;\n\tpadding: 0;\n\tfont-size: 13px;\n\tline-height: 1.6;\n\tcolor: #6b6b6b;\n}\n.r14-pw-rules__title { margin-bottom: 2px; }\n.ca-form .r14-pw-rules { margin-bottom: 6px; }\n.ca-form .ca-field { margin-bottom: 1.15em; }\n.r14-pw-rule { display: flex; align-items: center; gap: 8px; }\n.r14-pw-rule__mark {\n\tflex: 0 0 auto;\n\twidth: 14px;\n\theight: 14px;\n\tborder: 1.5px solid #c9c9c9;\n\tborder-radius: 50%;\n\tposition: relative;\n\ttransition: background .15s ease, border-color .15s ease;\n}\n.r14-pw-rule.is-ok .r14-pw-rule__mark {\n\tbackground: #B89066;\n\tborder-color: #B89066;\n}\n.r14-pw-rule.is-ok .r14-pw-rule__mark::after {\n\tcontent: \"\";\n\tposition: absolute;\n\tleft: 4px;\n\ttop: 1px;\n\twidth: 3px;\n\theight: 7px;\n\tborder: solid #fff;\n\tborder-width: 0 1.5px 1.5px 0;\n\ttransform: rotate(45deg);\n}\n.r14-pw-rule.is-ok { color: #262626; }\n.r14-pw-rules.has-bad-chars::after {\n\tcontent: \"Emojid ei ole lubatud.\";\n\tdisplay: block;\n\tmargin-top: 4px;\n\tcolor: #b3261e;\n}\n\n\t\t<\/style>\n\n\t\t<script>\n\t\t(function () {\n\t\t\tvar ajaxUrl = \"https:\\\/\\\/r14.ee\\\/wp-admin\\\/admin-ajax.php\";\n\t\t\tvar CA_I18N = {\"policy_invalid\":\"Password does not meet the requirements. See the checklist under the password field.\",\"network_error\":\"Connection error. Please try again.\"};\n\n\t\t\t\/\/ Password show\/hide toggles.\n\t\t\tdocument.querySelectorAll('.ca-pass-toggle').forEach(function (btn) {\n\t\t\t\tbtn.addEventListener('click', function () {\n\t\t\t\t\tvar input = document.getElementById(btn.dataset.target);\n\t\t\t\t\tif (!input) { return; }\n\t\t\t\t\tvar show = input.type === 'password';\n\t\t\t\t\tinput.type = show ? 'text' : 'password';\n\t\t\t\t\tbtn.classList.toggle('is-visible', show);\n\t\t\t\t\tbtn.setAttribute('aria-label', show ? btn.dataset.hideLabel : btn.dataset.showLabel);\n\t\t\t\t\tbtn.setAttribute('aria-pressed', show ? 'true' : 'false');\n\t\t\t\t\t\/\/ Keep the caret where the user left it.\n\t\t\t\t\tinput.focus();\n\t\t\t\t\tvar end = input.value.length;\n\t\t\t\t\ttry { input.setSelectionRange(end, end); } catch (e) {}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdocument.querySelectorAll('form.ca-ajax').forEach(function (form) {\n\t\t\t\tvar notice = form.querySelector('.ca-notice');\n\t\t\t\tvar button = form.querySelector('.ca-button');\n\t\t\t\tvar btnText = button.textContent;\n\n\t\t\t\tfunction show(type, text) {\n\t\t\t\t\tnotice.textContent = text;\n\t\t\t\t\tnotice.className = 'ca-notice ca-notice-' + type;\n\t\t\t\t}\n\n\t\t\t\tfunction validate() {\n\t\t\t\t\tvar fields = form.querySelectorAll('input[data-required-msg]');\n\t\t\t\t\tfor (var i = 0; i < fields.length; i++) {\n\t\t\t\t\t\tvar f = fields[i];\n\t\t\t\t\t\tif (!f.value.trim()) { show('error', f.dataset.requiredMsg); f.focus(); return false; }\n\t\t\t\t\t\tif (f.type === 'email' && f.dataset.invalidMsg && !\/^\\S+@\\S+\\.\\S+$\/.test(f.value.trim())) {\n\t\t\t\t\t\t\tshow('error', f.dataset.invalidMsg); f.focus(); return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (f.dataset.min && f.value.length < parseInt(f.dataset.min, 10)) {\n\t\t\t\t\t\t\tshow('error', f.dataset.minMsg); f.focus(); return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (f.dataset.policy) {\n\t\t\t\t\t\t\tvar list = document.querySelector('.r14-pw-rules[data-for=\"' + f.id + '\"]');\n\t\t\t\t\t\t\tif (list && !list.classList.contains('is-complete')) {\n\t\t\t\t\t\t\t\tshow('error', CA_I18N.policy_invalid);\n\t\t\t\t\t\t\t\tf.focus(); return false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (f.dataset.match) {\n\t\t\t\t\t\t\tvar other = form.querySelector(f.dataset.match);\n\t\t\t\t\t\t\tif (other && f.value !== other.value) {\n\t\t\t\t\t\t\t\tshow('error', f.dataset.matchMsg); f.focus(); return false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tform.addEventListener('submit', function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (!validate()) { return; }\n\n\t\t\t\t\tbutton.disabled = true;\n\t\t\t\t\tbutton.textContent = button.dataset.loading || btnText;\n\n\t\t\t\t\tvar data = new FormData(form);\n\t\t\t\t\tdata.append('action', form.dataset.action);\n\n\t\t\t\t\tfetch(ajaxUrl, { method: 'POST', credentials: 'same-origin', body: data })\n\t\t\t\t\t\t.then(function (r) { return r.json(); })\n\t\t\t\t\t\t.then(function (res) {\n\t\t\t\t\t\t\tif (res.success) {\n\t\t\t\t\t\t\t\tshow('success', res.data.message);\n\t\t\t\t\t\t\t\tif (res.data.redirect) {\n\t\t\t\t\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\t\t\t\t\twindow.location.href = res.data.redirect;\n\t\t\t\t\t\t\t\t\t}, 400);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tform.reset();\n\t\t\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\t\t\tbutton.textContent = btnText;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tshow('error', res.data.message);\n\t\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\t\tbutton.textContent = btnText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function () {\n\t\t\t\t\t\t\tshow('error', CA_I18N.network_error);\n\t\t\t\t\t\t\tbutton.disabled = false;\n\t\t\t\t\t\t\tbutton.textContent = btnText;\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t})();\n\t\t<\/script>\n\n\t\t<script>\n\/**\n * Live password rule checklist. Ticks each rule as it is satisfied.\n * Server side validation stays authoritative; this is guidance only.\n *\/\n(function () {\n\t'use strict';\n\n\t\/\/ Unicode property escapes, with an ASCII fallback for older browsers.\n\tvar re;\n\ttry {\n\t\tre = {\n\t\t\tupper:  new RegExp('\\\\p{Lu}', 'u'),\n\t\t\tdigit:  new RegExp('\\\\p{N}', 'u'),\n\t\t\tsymbol: new RegExp('[^\\\\p{L}\\\\p{N}\\\\s]', 'u'),\n\t\t\tbad:    new RegExp('[\\\\p{C}\\\\p{So}]', 'u')\n\t\t};\n\t} catch (e) {\n\t\tre = {\n\t\t\tupper:  \/[A-Z\u00c4\u00d6\u00d5\u00dc\u0160\u017d]\/,\n\t\t\tdigit:  \/[0-9]\/,\n\t\t\tsymbol: \/[^a-zA-Z0-9\\s]\/,\n\t\t\tbad:    \/[\\u200d\\u{1F300}-\\u{1FAFF}\\u{2600}-\\u{27BF}]\/u\n\t\t};\n\t}\n\n\tfunction minLength(list) {\n\t\tvar li = list.querySelector('[data-rule=\"length\"] span:last-child');\n\t\tvar m = li && li.textContent.match(\/\\d+\/);\n\t\treturn m ? parseInt(m[0], 10) : 8;\n\t}\n\n\tfunction check(value, rule, min) {\n\t\tswitch (rule) {\n\t\t\tcase 'length': return value.length >= min;\n\t\t\tcase 'upper':  return re.upper.test(value);\n\t\t\tcase 'digit':  return re.digit.test(value);\n\t\t\tcase 'symbol': return re.symbol.test(value);\n\t\t\tdefault:       return false;\n\t\t}\n\t}\n\n\tfunction update(input, list) {\n\t\tvar value = input.value || '';\n\t\tvar min = minLength(list);\n\t\tvar all = true;\n\n\t\tlist.querySelectorAll('.r14-pw-rule').forEach(function (li) {\n\t\t\tvar ok = check(value, li.dataset.rule, min);\n\t\t\tli.classList.toggle('is-ok', ok);\n\t\t\tif (!ok) { all = false; }\n\t\t});\n\n\t\tlist.classList.toggle('is-complete', all && value.length > 0);\n\t\tlist.classList.toggle('has-bad-chars', re.bad.test(value));\n\t}\n\n\tfunction bind() {\n\t\tdocument.querySelectorAll('.r14-pw-rules').forEach(function (list) {\n\t\t\tvar input = document.getElementById(list.dataset.for);\n\t\t\tif (!input || input.dataset.r14PwBound) { return; }\n\t\t\tinput.dataset.r14PwBound = '1';\n\t\t\tinput.addEventListener('input', function () { update(input, list); });\n\t\t\tupdate(input, list);\n\t\t});\n\t}\n\n\tdocument.addEventListener('DOMContentLoaded', bind);\n\tdocument.addEventListener('r14ad:content-loaded', bind);\n\tbind();\n})();\n\t\t<\/script>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eccb9be e-con-full elementor-hidden-mobile elementor-hidden-tablet e-flex e-con e-child\" data-id=\"eccb9be\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Valmis j\u00e4rgmiseks lonksuks? Sul ei ole kontot? Registreeru siin<\/p>","protected":false},"author":1,"featured_media":0,"parent":3147,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3641","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Login - Restaurant R14<\/title>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Login - Restaurant R14\" \/>\n<meta property=\"og:description\" content=\"Valmis j\u00e4rgmiseks lonksuks? Sul ei ole kontot? Registreeru siin\" \/>\n<meta property=\"og:url\" content=\"https:\/\/r14.ee\/en\/r14-veinid\/login\/\" \/>\n<meta property=\"og:site_name\" content=\"Restaurant R14\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-08T16:31:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/\",\"url\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/\",\"name\":\"Login - Restaurant R14\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/r14.ee\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/r14.ee\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/R14_v2_logo_gold-1024x1024.png\",\"datePublished\":\"2025-11-21T13:45:37+00:00\",\"dateModified\":\"2026-08-08T16:31:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/#primaryimage\",\"url\":\"https:\\\/\\\/r14.ee\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/R14_v2_logo_gold-1024x1024.png\",\"contentUrl\":\"https:\\\/\\\/r14.ee\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/R14_v2_logo_gold-1024x1024.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/login\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/r14.ee\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R14 Veinid\",\"item\":\"https:\\\/\\\/r14.ee\\\/r14-veinid\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Login\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/r14.ee\\\/#website\",\"url\":\"https:\\\/\\\/r14.ee\\\/\",\"name\":\"Restaurant R14\",\"description\":\"A union of food &amp; wine\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/r14.ee\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Login - Restaurant R14","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"Login - Restaurant R14","og_description":"Valmis j\u00e4rgmiseks lonksuks? Sul ei ole kontot? Registreeru siin","og_url":"https:\/\/r14.ee\/en\/r14-veinid\/login\/","og_site_name":"Restaurant R14","article_modified_time":"2026-08-08T16:31:13+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/r14.ee\/r14-veinid\/login\/","url":"https:\/\/r14.ee\/r14-veinid\/login\/","name":"Login - Restaurant R14","isPartOf":{"@id":"https:\/\/r14.ee\/#website"},"primaryImageOfPage":{"@id":"https:\/\/r14.ee\/r14-veinid\/login\/#primaryimage"},"image":{"@id":"https:\/\/r14.ee\/r14-veinid\/login\/#primaryimage"},"thumbnailUrl":"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-1024x1024.png","datePublished":"2025-11-21T13:45:37+00:00","dateModified":"2026-08-08T16:31:13+00:00","breadcrumb":{"@id":"https:\/\/r14.ee\/r14-veinid\/login\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/r14.ee\/r14-veinid\/login\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/r14.ee\/r14-veinid\/login\/#primaryimage","url":"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-1024x1024.png","contentUrl":"https:\/\/r14.ee\/wp-content\/uploads\/2019\/05\/R14_v2_logo_gold-1024x1024.png"},{"@type":"BreadcrumbList","@id":"https:\/\/r14.ee\/r14-veinid\/login\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/r14.ee\/"},{"@type":"ListItem","position":2,"name":"R14 Veinid","item":"https:\/\/r14.ee\/r14-veinid\/"},{"@type":"ListItem","position":3,"name":"Login"}]},{"@type":"WebSite","@id":"https:\/\/r14.ee\/#website","url":"https:\/\/r14.ee\/","name":"Restaurant R14","description":"A union of food &amp; wine","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/r14.ee\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/pages\/3641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/comments?post=3641"}],"version-history":[{"count":127,"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/pages\/3641\/revisions"}],"predecessor-version":[{"id":6746,"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/pages\/3641\/revisions\/6746"}],"up":[{"embeddable":true,"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/pages\/3147"}],"wp:attachment":[{"href":"https:\/\/r14.ee\/en\/wp-json\/wp\/v2\/media?parent=3641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}