81 lines
4.0 KiB
PHP
81 lines
4.0 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="id">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Reset Password - Absensi</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root { --bg: #0f172a; --card: #111827; --muted: #9ca3af; --text: #e5e7eb; --primary: #3b82f6; }
|
|
* { box-sizing: border-box; }
|
|
body {
|
|
margin: 0;
|
|
font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
|
|
color: var(--text);
|
|
min-height: 100vh;
|
|
display: grid;
|
|
place-items: center;
|
|
background:
|
|
linear-gradient(180deg, rgba(2,6,23,0.70), rgba(2,6,23,0.85)),
|
|
url('{{ asset('images/bg-truck.jpg') }}') center center / cover no-repeat fixed;
|
|
background-color: #0b1220;
|
|
}
|
|
.card { width: 100%; max-width: 480px; background: rgba(17, 24, 39, 0.85); border: 1px solid rgba(148, 163, 184, 0.1); border-radius: 16px; padding: 28px; box-shadow: 0 10px 30px rgba(0,0,0,0.35); backdrop-filter: blur(6px); }
|
|
h1 { margin: 0 0 8px; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
|
|
p.sub { margin: 0 0 18px; color: var(--muted); font-size: 14px; }
|
|
.field { margin-bottom: 14px; }
|
|
label { display: block; font-size: 13px; margin-bottom: 6px; color: #cbd5e1; }
|
|
input { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.22); background: rgba(2,6,23,0.4); color: var(--text); outline: none; transition: border 0.2s, box-shadow 0.2s; }
|
|
input:focus { border-color: rgba(59,130,246,0.6); box-shadow: 0 0 0 4px rgba(59,130,246,0.15); }
|
|
button { width: 100%; margin-top: 12px; padding: 12px 16px; background: linear-gradient(135deg, #2563eb, #06b6d4); border: none; border-radius: 10px; color: white; font-weight: 600; cursor: pointer; box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35); transition: transform 0.08s ease, filter 0.2s ease; }
|
|
.errors { background: rgba(239, 68, 68, 0.12); border: 1px solid rgba(239, 68, 68, 0.35); color: #fecaca; padding: 10px 12px; border-radius: 10px; margin-bottom: 12px; font-size: 13px; }
|
|
.footer { margin-top: 12px; font-size: 12px; color: var(--muted); text-align: center; }
|
|
a { color: #93c5fd; text-decoration: none; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<form class="card" method="POST" action="{{ route('password.update') }}">
|
|
@csrf
|
|
<h1>Reset Password</h1>
|
|
<p class="sub">Masukkan password baru Anda.</p>
|
|
|
|
@if ($errors->any())
|
|
<div class="errors">
|
|
<ul style="margin:0; padding-left: 18px;">
|
|
@foreach ($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
@endif
|
|
|
|
@if (! empty($token))
|
|
<input type="hidden" name="token" value="{{ $token }}" />
|
|
@endif
|
|
|
|
<div class="field">
|
|
<label for="email">Email</label>
|
|
<input id="email" type="email" name="email" value="{{ old('email', $email ?? '') }}" required autofocus {{ empty($token) ? 'readonly' : '' }} />
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label for="password">Password Baru</label>
|
|
<input id="password" type="password" name="password" required />
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label for="password_confirmation">Konfirmasi Password</label>
|
|
<input id="password_confirmation" type="password" name="password_confirmation" required />
|
|
</div>
|
|
|
|
<button type="submit">Simpan Password</button>
|
|
|
|
<div class="footer">
|
|
Kembali ke <a href="{{ route('login') }}">Login</a>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html>
|