1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/logo.png"/><link rel="preload" as="image" href="https://www.google.com/favicon.ico"/><link rel="preload" as="image" href="/logo-ifsr.webp"/><link rel="preload" as="image" href="/logo-ffi.webp"/><link rel="preload" as="image" href="/logo-maven.webp"/><link rel="modulepreload" href="/assets/entry.client-DB_u_t-F.js"/><link rel="modulepreload" href="/assets/chunk-B7RQU5TL-Dr3SdsW_.js"/><link rel="modulepreload" href="/assets/index-DVBHOh1D.js"/><link rel="modulepreload" href="/assets/chunk-SKNKB5VI-DzrWxLA1.js"/><link rel="modulepreload" href="/assets/root-CHbxrZa-.js"/><link rel="modulepreload" href="/assets/layout-BBwldipj.js"/><link rel="modulepreload" href="/assets/proxy-4zUmzrNe.js"/><link rel="modulepreload" href="/assets/login-CPEyUlRR.js"/><link rel="modulepreload" href="/assets/db-BSP7j7-d.js"/><link rel="modulepreload" href="/assets/server-AyD8BRBj.js"/><link rel="modulepreload" href="/assets/google-LxaWkusq.js"/><link rel="modulepreload" href="/assets/utils-DGmmjrLf.js"/><link rel="modulepreload" href="/assets/auth-CDJmsGKD.js"/><link rel="modulepreload" href="/assets/password-CViKg6fe.js"/><title>Masuk - Review Dapur</title><meta name="description" content="Masuk ke akun Review Dapur Anda untuk memberikan review makanan SPPG, mengakses fitur gamifikasi, dan terhubung dengan komunitas reviewer."/><meta name="keywords" content="login, masuk, sign in, akun, review dapur, SPPG, authentication"/><meta property="og:title" content="Masuk - Review Dapur"/><meta property="og:description" content="Masuk ke akun Review Dapur Anda"/><meta property="og:type" content="website"/><meta name="robots" content="noindex, nofollow"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="/assets/root-jE_30vk5.css"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Outfit:wght@100;200;300;400;500;600;700;800;900&display=swap"/></head><body><div class="min-h-screen relative overflow-hidden"><div class="absolute inset-0 bg-gradient-to-br from-slate-100 via-blue-100/50 to-indigo-100/70" style="transform:translate(0px, 0px);background-position:0% 0%"></div><div class="absolute top-0 left-1/4 w-96 h-96 bg-blue-200/30 rounded-full blur-3xl"></div><div class="absolute bottom-0 right-1/4 w-80 h-80 bg-indigo-200/30 rounded-full blur-3xl"></div><div class="absolute inset-0 bg-[linear-gradient(rgba(0,0,0,0.02)_1px,transparent_1px),linear-gradient(90deg,rgba(0,0,0,0.02)_1px,transparent_1px)] bg-[length:40px_40px] opacity-40 pointer-events-none"></div><div class="lg:hidden relative min-h-screen flex flex-col z-10"><div class="flex-shrink-0 py-8 px-6 text-center"><a class="inline-block group" href="/" data-discover="true"><img src="/logo.png" alt="Review MBG" class="h-12 object-contain group-hover:scale-105 transition-transform duration-200"/></a></div><div class="flex-1 flex items-center justify-center p-4"><div class="w-full max-w-md" style="opacity:0;transform:translateY(20px)"><div style="opacity:0;transform:scale(0.95)"><div class="bg-white/40 backdrop-blur-xl rounded-2xl shadow-2xl border border-white/30 p-8"><div class="text-center mb-8"><h2 class="text-3xl font-bold mb-3"><span class="text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-emerald-600">Masuk ke Akun Anda</span></h2><p class="text-gray-700">Bergabunglah untuk memberikan review menu makanan dan dapur (SPPG) Program Makan Bergisi Gratis</p></div><form class="space-y-6"><button class="inline-flex items-center justify-center font-medium rounded-xl transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none border border-gray-300 bg-white/50 backdrop-blur-md text-gray-700 hover:bg-white/70 focus:ring-blue-500 shadow-sm hover:shadow-md px-6 py-3 text-base w-full" type="button"><div class="flex items-center justify-center gap-3"><img src="https://www.google.com/favicon.ico" alt="Google" class="w-5 h-5"/>Masuk dengan Google</div></button><div class="relative"><div class="absolute inset-0 flex items-center"><div class="w-full border-t border-gray-300"></div></div><div class="relative flex justify-center text-sm"><span class="px-2 bg-white/40 backdrop-blur-xl text-gray-500">Atau masuk dengan email</span></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2">Email</label><input class="w-full px-4 py-3 text-gray-900 bg-white/50 backdrop-blur-md border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 focus:bg-white/70 transition-all duration-200 disabled:bg-gray-100/50 disabled:text-gray-500 " type="text" placeholder="[email protected]" required="" name="username" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-2">Password</label><input class="w-full px-4 py-3 text-gray-900 bg-white/50 backdrop-blur-md border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 focus:bg-white/70 transition-all duration-200 disabled:bg-gray-100/50 disabled:text-gray-500 " type="password" placeholder="Masukkan password" required="" name="password" value=""/></div><button class="inline-flex items-center justify-center font-medium rounded-xl transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none bg-gradient-to-r from-blue-600 to-emerald-600 text-white hover:from-blue-500 hover:to-emerald-500 focus:ring-blue-500 shadow-lg hover:shadow-xl px-6 py-3 text-base w-full" t
1ype="submit" disabled="">Masuk</button><div class="text-center text-sm text-gray-600">Belum punya akun?<!-- --> <a class="text-emerald-600 hover:underline font-medium" href="/register" data-discover="true">Daftar di sini</a></div></form></div></div></div></div><div class="flex-shrink-0 py-8 px-6 text-center"><div><h4 class="text-base font-semibold text-gray-700 mb-3">Developed by</h4><div class="flex items-center justify-center lg:justify-start gap-6"><img src="/logo-ifsr.webp" alt="IFSR Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/><img src="/logo-ffi.webp" alt="FFI Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/><img src="/logo-maven.webp" alt="Maven Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/></div></div></div></div><div class="hidden lg:block min-h-screen relative z-10"><div class="container mx-auto px-6 min-h-screen flex items-center"><div class="grid lg:grid-cols-2 gap-12 w-full"><div class="flex flex-col justify-center space-y-12"><div class="max-w-md"><p class="text-lg text-gray-700 leading-relaxed italic">"Bersama menciptakan transparansi dan akuntabilitas program makan bergizi untuk masa depan anak Indonesia yang lebih sehat"</p></div><div><a class="inline-block group" href="/" data-discover="true"><img src="/logo.png" alt="Review MBG" class="h-14 object-contain object-left group-hover:scale-105 transition-transform duration-200"/></a></div><div><div><h4 class="text-base font-semibold text-gray-700 mb-3">Developed by</h4><div class="flex items-center justify-center lg:justify-start gap-6"><img src="/logo-ifsr.webp" alt="IFSR Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/><img src="/logo-ffi.webp" alt="FFI Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/><img src="/logo-maven.webp" alt="Maven Logo" class="h-8 object-contain opacity-70 hover:opacity-100 transition-opacity duration-200"/></div></div></div></div><div class="flex items-center justify-center"><div class="w-full max-w-md" style="opacity:0;transform:translateY(20px)"><div style="opacity:0;transform:scale(0.95)"><div class="bg-white/40 backdrop-blur-xl rounded-2xl shadow-2xl border border-white/30 p-8"><div class="text-center mb-8"><h2 class="text-3xl font-bold mb-3"><span class="text-transparent bg-clip-text bg-gradient-to-r from-blue-600 to-emerald-600">Masuk ke Akun Anda</span></h2><p class="text-gray-700">Bergabunglah untuk memberikan review menu makanan dan dapur (SPPG) Program Makan Bergisi Gratis</p></div><form class="space-y-6"><button class="inline-flex items-center justify-center font-medium rounded-xl transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none border border-gray-300 bg-white/50 backdrop-blur-md text-gray-700 hover:bg-white/70 focus:ring-blue-500 shadow-sm hover:shadow-md px-6 py-3 text-base w-full" type="button"><div class="flex items-center justify-center gap-3"><img src="https://www.google.com/favicon.ico" alt="Google" class="w-5 h-5"/>Masuk dengan Google</div></button><div class="relative"><div class="absolute inset-0 flex items-center"><div class="w-full border-t border-gray-300"></div></div><div class="relative flex justify-center text-sm"><span class="px-2 bg-white/40 backdrop-blur-xl text-gray-500">Atau masuk dengan email</span></div></div><div><label class="block text-sm font-medium text-gray-700 mb-2">Email</label><input class="w-full px-4 py-3 text-gray-900 bg-white/50 backdrop-blur-md border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 focus:bg-white/70 transition-all duration-200 disabled:bg-gray-100/50 disabled:text-gray-500 " type="text" placeholder="[email protected]" required="" name="username" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-2">Password</label><input class="w-full px-4 py-3 text-gray-900 bg-white/50 backdrop-blur-md border border-gray-200 rounded-xl shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 focus:bg-white/70 transition-all duration-200 disabled:bg-gray-100/50 disabled:text-gray-500 " type="password" placeholder="Masukkan password" required="" name="password" value=""/></div><button class="inline-flex items-center justify-center font-medium rounded-xl transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none bg-gradient-to-r from-blue-600 to-emerald-600 text-white hover:from-blue-500 hover:to-emerald-500 focus:ring-blue-500 shadow-lg hover:shadow-xl px-6 py-3 text-base w-full" t
1ype="submit" disabled="">Masuk</button><div class="text-center text-sm text-gray-600">Belum punya akun?<!-- --> <a class="text-emerald-600 hover:underline font-medium" href="/register" data-discover="true">Daftar di sini</a></div></form></div></div></div></div></div></div></div></div>
1<script>((storageKey2, restoreKey) => { 2 if (!window.history.state || !window.history.state.key) { 3 let key = Math.random().toString(32).slice(2); 4 window.history.replaceState({ key }, ""); 5 } 6 try { 7 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 8 let storedY = positions[restoreKey || window.history.state.key]; 9 if (typeof storedY === "number") { 10 window.scrollTo(0, storedY); 11 } 12 } catch (error2) { 13 console.error(error2); 14 sessionStorage.removeItem(storageKey2); 15 } 16 })("react-router-scroll-positions", null)</script>
16<script>window.__reactRouterContext = {"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":true},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
16<script type="module" async="">; 17import * as route0 from "/assets/root-CHbxrZa-.js"; 18import * as route1 from "/assets/layout-BBwldipj.js"; 19import * as route2 from "/assets/login-CPEyUlRR.js"; 20 window.__reactRouterManifest = { 21 "entry": { 22 "module": "/assets/entry.client-DB_u_t-F.js", 23 "imports": [ 24 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 25 "/assets/index-DVBHOh1D.js", 26 "/assets/chunk-SKNKB5VI-DzrWxLA1.js" 27 ], 28 "css": [] 29 }, 30 "routes": { 31 "root": { 32 "id": "root", 33 "path": "", 34 "hasAction": false, 35 "hasLoader": false, 36 "hasClientAction": false, 37 "hasClientLoader": false, 38 "hasClientMiddleware": false, 39 "hasErrorBoundary": true, 40 "module": "/assets/root-CHbxrZa-.js", 41 "imports": [ 42 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 43 "/assets/index-DVBHOh1D.js", 44 "/assets/chunk-SKNKB5VI-DzrWxLA1.js" 45 ], 46 "css": [ 47 "/assets/root-jE_30vk5.css" 48 ] 49 }, 50 "routes/auth/layout": { 51 "id": "routes/auth/layout", 52 "parentId": "root", 53 "hasAction": false, 54 "hasLoader": false, 55 "hasClientAction": false, 56 "hasClientLoader": false, 57 "hasClientMiddleware": false, 58 "hasErrorBoundary": false, 59 "module": "/assets/layout-BBwldipj.js", 60 "imports": [ 61 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 62 "/assets/proxy-4zUmzrNe.js" 63 ], 64 "css": [] 65 }, 66 "routes/auth/login": { 67 "id": "routes/auth/login", 68 "parentId": "routes/auth/layout", 69 "path": "login", 70 "hasAction": false, 71 "hasLoader": false, 72 "hasClientAction": false, 73 "hasClientLoader": false, 74 "hasClientMiddleware": false, 75 "hasErrorBoundary": false, 76 "module": "/assets/login-CPEyUlRR.js", 77 "imports": [ 78 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 79 "/assets/db-BSP7j7-d.js", 80 "/assets/server-AyD8BRBj.js", 81 "/assets/google-LxaWkusq.js", 82 "/assets/utils-DGmmjrLf.js", 83 "/assets/auth-CDJmsGKD.js", 84 "/assets/password-CViKg6fe.js", 85 "/assets/proxy-4zUmzrNe.js", 86 "/assets/chunk-SKNKB5VI-DzrWxLA1.js", 87 "/assets/index-DVBHOh1D.js" 88 ], 89 "css": [] 90 }, 91 "routes/public/layout": { 92 "id": "routes/public/layout", 93 "parentId": "root", 94 "hasAction": false, 95 "hasLoader": true, 96 "hasClientAction": false, 97 "hasClientLoader": false, 98 "hasClientMiddleware": false, 99 "hasErrorBoundary": false, 100 "module": "/assets/layout-DyzDYcoa.js", 101 "imports": [ 102 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 103 "/assets/auth-B_bQqtWS.js", 104 "/assets/chevron-down-DrOtROsU.js", 105 "/assets/user-DOjeB85q.js", 106 "/assets/createLucideIcon-p-tnHLBy.js", 107 "/assets/arrow-right-CXKCLRGR.js", 108 "/assets/index-QM3dYCd7.js", 109 "/assets/proxy-4zUmzrNe.js", 110 "/assets/x-79K45MTL.js", 111 "/assets/server-AyD8BRBj.js", 112 "/assets/auth-CDJmsGKD.js", 113 "/assets/chunk-SKNKB5VI-DzrWxLA1.js", 114 "/assets/index-DVBHOh1D.js" 115 ], 116 "css": [] 117 }, 118 "routes/public/home": { 119 "id": "routes/public/home", 120 "parentId": "routes/public/layout", 121 "index": true, 122 "hasAction": false, 123 "hasLoader": true, 124 "hasClientAction": false, 125 "hasClientLoader": false, 126 "hasClientMiddleware": false, 127 "hasErrorBoundary": false, 128 "module": "/assets/home-BIMs4_rj.js", 129 "imports": [ 130 "/assets/chunk-B7RQU5TL-Dr3SdsW_.js", 131 "/assets/circle-check-big-lhdKICx4.js", 132 "/assets/arrow-right-CXKCLRGR.js", 133 "/assets/chart-column-DqYa4Y2C.js", 134 "/assets/star-BHgSN4oy.js", 135 "/assets/check-D__WmMEW.js", 136 "/assets/createLucideIcon-p-tnHLBy.js", 137 "/assets/geo-CzRrZUar.js", 138 "/assets/db-BSP7j7-d.js", 139 "/assets/server-AyD8BRBj.js", 140 "/assets/external-6hLDxQ3q.js", 141 "/assets/index-r3dhy7bE.js", 142 "/assets/Card-CbeXjv8Y.js", 143 "/assets/RankTable-BtHhUvcg.js", 144 "/assets/crown-CsVDt_yu.js", 145 "/assets/index-QM3dYCd7.js", 146 "/assets/proxy-4zUmzrNe.js", 147 "/assets/sparkles-C7c0zTpe.js", 148 "/assets/circle-check-fYgne2oB.js", 149 "/assets/shield-check-D9OcR6FS.js", 150 "/assets/users-BugLnUlF.js", 151 "/assets/award-Zbyd90Q5.js", 152 "/assets/building-2-kp-ZtWp_.js", 153 "/assets/list-BySYPiBj.js", 154 "/assets/search-NWSef_Wi.js", 155 "/assets/medal-muxrdX1X.js", 156 "/assets/chart-line-BiKDFyR3.js", 157 "/assets/chevron-left-DUXx6XPO.js", 158 "/assets/chevron-right-BmlwHizh.js", 159 "/assets/book-open-Ciex-Iz4.js", 160 "/assets/clock-CazxmW_B.js", 161 "/assets/utils-Ca0eWo0-.js" 162 ], 163 "css": [] 164 } 165 }, 166 "url": "/assets/manifest-e6d194af.js", 167 "version": "e6d194af" 168}; 169 window.__reactRouterRouteModules = {"root":route0,"routes/auth/layout":route1,"routes/auth/login":route2}; 170 171import("/assets/entry.client-DB_u_t-F.js");</script>
171<!--$-->
171<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{},\"actionData\",\"errors\"]\n");</script>
171<!--$-->
171<script>window.__reactRouterContext.streamController.close();</script>
171<!--/$--><!--/$-->
171<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"72381c715107471f81158aa9306cb090","r":1,"spa":2}' crossorigin="anonymous"></script>
171 172</body></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.