1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <meta name="csrf-token" content="U0YXJWcXN0r6s0ZM9jwo9qGwoHHlG7EcIvjHJs7n"> 7 8 <title>Shelterluv</title> 9 10 <!-- Fonts --> 11 <link rel="preconnect" href="https://fonts.googleapis.com"> 12 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap"> 13 14 <!-- Styles --> 15 <!-- Prevent FOUC by eary loading styles needed for page --> 16 <style> 17 [x-cloak] { 18 display: none !important; 19 } 20 .min-h-screen.flex { 21 min-height: 100vh; 22 display: flex; 23 flex-direction: column; 24 justify-content: center; 25 align-items: center; 26 } 27 </style> 28 <link rel="preload" as="style" href="https://new-s3.shelterluv.com/public/build/assets/vendor-DvHk_kCE.css" /><link rel="stylesheet" href="https://new-s3.shelterluv.com/public/build/assets/vendor-DvHk_kCE.css" data-navigate-track="reload" /> <link rel="preload" as="style" href="https://new-s3.shelterluv.com/public/build/assets/app-7fjAS_Pj.css" /><link rel="stylesheet" href="https://new-s3.shelterluv.com/public/build/assets/app-7fjAS_Pj.css" data-navigate-track="reload" /> 29 <!-- Scripts --> 30
30<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js" defer></script>
30 31 <link rel="modulepreload" as="script" href="https://new-s3.shelterluv.com/public/build/assets/app-Bjm7ZrT0.js" />
31<script type="module" src="https://new-s3.shelterluv.com/public/build/assets/app-Bjm7ZrT0.js" data-navigate-track="reload"></script>
31</head> 32<body class="font-sans antialiased text-gray-900"> 33 <div class="w-full h-screen flex flex-col lg:flex-row"> 34 <!-- Login Form Section - Left Half --> 35 <div class="w-full lg:w-1/2 flex flex-col justify-center items-center px-6 py-12 bg-white"> 36 <div> 37 <img src="https://new-s3.shelterluv.com/public/img/logos/shelterluv_logo.png" alt="Shelterluv Logo" class="mx-auto" style="width: 440px; height: 35px; object-fit: contain;"> 38 <div class="mx-auto w-16 bg-yellow-400 mt-8 mb-1" style="height: 4px;"></div> 39 </div> 40 41 <div class="w-full sm:max-w-md mt-2 flex justify-center items-center px-6 py-4 relative"> 42 43 <h2 class="flex text-center text-gray-800 text-lg font-semibold"> 44 Log in to your account 45 </h2> 46 </div> 47 48 <div class="w-full sm:max-w-md mt-2 "> 49 <div class="bg-white border border-gray-200 rounded-lg shadow-md px-6 py-6"> 50 <!-- Session Status --> 51 52 <!-- Validation Errors --> 53 54 <form method="POST" action="https://new.shelterluv.com/login" x-data="loginCsrfRefresh()" x-on:submit.prevent="refreshAndSubmit($event)"> 55 <input type="hidden" name="_token" value="U0YXJWcXN0r6s0ZM9jwo9qGwoHHlG7EcIvjHJs7n" autocomplete="off"> 56 <!-- Name --> 57 <div class="flex flex-col gap-y-2"> 58 <label class="block font-semibold text-sm text-gray-800" for="username"> 59 Username 60</label> 61 62 <div 63 64 class="rounded-md focus-within:border-green-600 focus-within:border-green-600 focus-within:ring-1 focus-within:ring-green-600 focus-within:outline-green-600 border transition ease-in-out duration-150 border-gray-200" 65> 66 <input 67 dir="auto" 68 69 70 class="block w-full border-0! ring-0! sm:text-sm rounded-md focus:outline-hidden focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600 py-[12px] px-4" id="username" type="text" name="username" required="required" autofocus="autofocus"/> 71 </div> 72 </div> 73 74 <!-- Password --> 75 <div class="flex flex-col gap-y-2 mt-4"> 76 <label class="block font-semibold text-sm text-gray-800" for="password"> 77 Password 78</label> 79 80 <div 81 x-data="{show: false}" 82 class="peer w-full relative" 83 @password-updated.window="show = false" 84> 85 <div 86 87 class="rounded-md focus-within:border-green-600 focus-within:border-green-600 focus-within:ring-1 focus-within:ring-green-600 focus-within:outline-green-600 border transition ease-in-out duration-150 border-gray-200" 88> 89 <input 90 dir="auto" 91 92 93 class="block w-full border-0! ring-0! sm:text-sm rounded-md focus:outline-hidden focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600 py-[12px] px-4" x-bind:type="show ? 'text' : 'password'" id="password" name="password" required="required" autocomplete="current-password"/> 94 </div> 95 96 <div 97 class="absolute top-1/2 right-0 grid h-full -translate-y-1/2 transform cursor-pointer place-content-center px-2 transition-opacity" 98 x-on:click="show = !show" 99 > 100 <svg 101 width="22" height="16" class="fill-current text-gray-800" x-cloak="x-cloak" x-bind:class="show ? 'hidden' : 'block'" 102 viewBox="0 0 22 16" 103 xmlns="http://www.w3.org/2000/svg" 104 aria-hidden="true" 105> 106 <path 107 d="M11 5C11.7956 5 12.5587 5.31607 13.1213 5.87868C13.6839 6.44129 14 7.20435 14 8C14 8.79565 13.6839 9.55871 13.1213 10.1213C12.5587 10.6839 11.7956 11 11 11C10.2044 11 9.44129 10.6839 8.87868 10.1213C8.31607 9.55871 8 8.79565 8 8C8 7.20435 8.31607 6.44129 8.87868 5.87868C9.44129 5.31607 10.2044 5 11 5ZM11 0.5C16 0.5 20.27 3.61 22 8C20.27 12.39 16 15.5 11 15.5C6 15.5 1.73 12.39 0 8C1.73 3.61 6 0.5 11 0.5ZM2.18 8C2.98825 9.65031 4.24331 11.0407 5.80248 12.0133C7.36165 12.9858 9.1624 13.5013 11 13.5013C12.8376 13.5013 14.6383 12.9858 16.1975 12.0133C17.7567 11.0407 19.0117 9.65031 19.82 8C19.0117 6.34969 17.7567 4.95925 16.1975 3.98675C14.6383 3.01424 12.8376 2.49868 11 2.49868C9.1624 2.49868 7.36165 3.01424 5.80248 3.98675C4.24331 4.95925 2.98825 6.34969 2.18 8Z" 108 /> 109</svg> 110 <svg 111 width="22" height="16" class="fill-current text-gray-800" x-cloak="x-cloak" x-bind:class="show ? 'block' : 'hidden'"
112 viewBox="0 0 22 16" 113 xmlns="http://www.w3.org/2000/svg" 114 aria-hidden="true" 115> 116 <path 117 d="M11 5C10.2044 5 9.44129 5.31607 8.87868 5.87868C8.31607 6.44129 8 7.20435 8 8C8 8.79565 8.31607 9.55871 8.87868 10.1213C9.44129 10.6839 10.2044 11 11 11C11.7956 11 12.5587 10.6839 13.1213 10.1213C13.6839 9.55871 14 8.79565 14 8C14 7.20435 13.6839 6.44129 13.1213 5.87868C12.5587 5.31607 11.7956 5 11 5ZM11 13C9.67392 13 8.40215 12.4732 7.46447 11.5355C6.52678 10.5979 6 9.32608 6 8C6 6.67392 6.52678 5.40215 7.46447 4.46447C8.40215 3.52678 9.67392 3 11 3C12.3261 3 13.5979 3.52678 14.5355 4.46447C15.4732 5.40215 16 6.67392 16 8C16 9.32608 15.4732 10.5979 14.5355 11.5355C13.5979 12.4732 12.3261 13 11 13ZM11 0.5C6 0.5 1.73 3.61 0 8C1.73 12.39 6 15.5 11 15.5C16 15.5 20.27 12.39 22 8C20.27 3.61 16 0.5 11 0.5Z" 118 /> 119</svg> 120 </div> 121</div> 122 </div> 123 124 <!-- Remember Me --> 125 <div class="flex items-center justify-between mt-4"> 126 <div> 127 <label for="remember_me" class="cursor-pointer inline-flex items-center"> 128 <div class="flex rounded-md"> 129 <input 130 class="cursor-pointer form-checkbox shadow-xs border-cool-gray-300 focus:ring-green-500 focus:border-green-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600 text-green-500 block transition duration-150 ease-in-out sm:text-sm sm:leading-5 rounded-sm disabled:bg-gray-200! disabled:cursor-not-allowed! border-gray-300" name="remember" id="remember_me" 131 type="checkbox" 132 /> 133</div> 134 <span class="ml-2 text-sm text-gray-800">Keep me logged in</span> 135 </label> 136 </div> 137 138 <div> 139 <a class="text-sm text-green-600 hover:text-green-700 font-semibold" href="https://new.shelterluv.com/forgot-password"> 140 Forgot password? 141 </a> 142 </div> 143 </div> 144 145 <div class="flex w-full items-center mt-4"> 146 <button 147 type="submit" class="inline-flex items-center font-semibold whitespace-nowrap focus:outline-hidden focus:ring-2 ring-offset-1 ring-green-600 transition ease-in-out duration-150 disabled:pointer-events-none text-button rounded-md border-2 px-[16px] py-[10px] text-white bg-green-600 border-transparent disabled:bg-gray-100 disabled:border-gray-100 disabled:text-gray-600 hover:bg-green-700 active:bg-green-700 w-full justify-center" data-cy="primary-button" 148 > 149 Log In 150 </button> 151 152 </div> 153 </form> 154 </div> 155 </div> 156 157 <div class="mt-4 flex items-center gap-3 text-xs text-gray-400"> 158 <a href="https://www.shelterluv.com/privacy" target="_blank" class="hover:text-gray-600 hover:underline">Privacy Policy</a> 159 <span>|</span> 160 <a href="https://www.shelterluv.com/terms_and_conditions" target="_blank" class="hover:text-gray-600 hover:underline">Terms & Conditions</a> 161 </div> 162 </div> 163 164 <!-- Sidebar Image Section - Right Half --> 165 <div class="w-full lg:w-1/2 flex items-center justify-center"> 166 <img 167 src="https://new-s3.shelterluv.com/login-images/01M3SM1PX2CWGGEMHVXXQ0A7VX.png" 168 alt="Login Sidebar" 169 class="w-full h-full object-cover" 170 loading="lazy" 171 /> 172 </div> 173</div> 174
174<script> 175 function loginCsrfRefresh() { 176 return { 177 submitting: false, 178 async refreshAndSubmit(event) { 179 if (this.submitting) { 180 return; 181 } 182 this.submitting = true; 183 const form = event.target; 184 try { 185 const response = await fetch("https:\/\/new.shelterluv.com\/csrf-token", { 186 headers: { 'Accept': 'application/json' }, 187 credentials: 'same-origin', 188 signal: AbortSignal.timeout(3000), 189 }); 190 if (response.ok) { 191 const { token } = await response.json(); 192 const input = form.querySelector('input[name="_token"]'); 193 if (input && token) { 194 input.value = token; 195 } 196 } 197 } catch (_) { 198 // Fall back to the baked-in token if the refresh call fails. 199 } 200 form.submit(); 201 }, 202 }; 203 } 204 </script>
204 205 </body> 206</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.