/* ============================================================
   login.css — SMPN 1 Pagal Login Page
   Framework: CodeIgniter 4 + Shield
   Font     : Geist (minimalis, modern sans-serif)
   ============================================================ */

   @import url('https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap');

   /* ---- Reset ---- */
   *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
   }
   
   /* ============================================================
      BODY — Full-page background image
      ============================================================ */
   body {
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     min-height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 2rem;
   
     /* Background image fullpage */
     background-image: url('https://smpn1pagaralam.sch.id/assets/upload/image/WhatsApp-Image-2025-11-08-at-09.45.46.jpeg');
     background-size: cover;
     background-position: center;
     background-repeat: no-repeat;
     background-attachment: fixed;
   
     /* Overlay gelap di atas background agar card terbaca */
     position: relative;
   }
   
   /* Overlay seluruh halaman */
   body::before {
     content: '';
     position: fixed;
     inset: 0;
     background: linear-gradient(
       135deg,
       rgba(8, 30, 60, 0.72) 0%,
       rgba(12, 68, 124, 0.60) 100%
     );
     z-index: 0;
   }
   
   
   /* ---- Wrapper ---- */
   .login-wrapper {
     position: relative;
     z-index: 1;
     width: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   
   /* ============================================================
      CARD CONTAINER
      ============================================================ */
   .login-container {
     display: grid;
     grid-template-columns: 1fr 1fr;
     width: 100%;
     max-width: 880px;
     min-height: 560px;
     border-radius: 20px;
     overflow: hidden;
   
     /* Glass morphism effect */
     background: rgba(255, 255, 255, 0.06);
     backdrop-filter: blur(2px);
     -webkit-backdrop-filter: blur(2px);
     border: 1px solid rgba(255, 255, 255, 0.12);
     box-shadow:
       0 24px 64px rgba(0, 0, 0, 0.45),
       0 1px 0 rgba(255, 255, 255, 0.08) inset;
   }
   
   /* ============================================================
      LEFT PANEL — gambar sekolah + teks
      ============================================================ */
   .left-panel {
     position: relative;
     display: flex;
     flex-direction: column;
     justify-content: space-between;
     overflow: hidden;
     min-height: 520px;
   }
   
   .left-panel-bg {
     position: absolute;
     inset: 0;
     
     background-size: cover;
     background-position: center;
     background-repeat: no-repeat;
     background-color: #0C447C;
     transition: transform 0.5s ease;
   }
   
   .left-panel:hover .left-panel-bg {
     transform: scale(1.04);
   }
   
   .left-panel-overlay {
     position: absolute;
     inset: 0;
     background: linear-gradient(
       160deg,
       rgba(8, 30, 60, 0.82) 0%,
       rgba(12, 68, 124, 0.78) 60%,
       rgba(20, 90, 160, 0.65) 100%
     );
   }
   
   /* Decorative rings */
   .left-panel::before {
     content: '';
     position: absolute;
     top: -70px; right: -70px;
     width: 240px; height: 240px;
     border-radius: 50%;
     border: 36px solid rgba(255, 255, 255, 0.05);
     z-index: 1;
   }
   
   .left-panel::after {
     content: '';
     position: absolute;
     bottom: -55px; left: -55px;
     width: 200px; height: 200px;
     border-radius: 50%;
     border: 28px solid rgba(255, 255, 255, 0.04);
     z-index: 1;
   }
   
   .left-content {
     position: relative;
     z-index: 2;
     display: flex;
     flex-direction: column;
     justify-content: space-between;
     height: 100%;
     padding: 3rem 2.5rem;
   }
   
   /* Brand */
   .brand {
     display: flex;
     align-items: center;
     gap: 10px;
   }
   
   .brand-icon {
     width: 36px;
     height: 36px;
     background: rgba(255, 255, 255, 0.15);
     border-radius: 9px;
     display: flex;
     align-items: center;
     justify-content: center;
     overflow: hidden;
     padding: 5px;
     border: 1px solid rgba(255,255,255,0.1);
   }
   
   .brand-icon img {
     width: 100%;
     height: 100%;
     object-fit: contain;
     filter: brightness(0) invert(1);
   }
   
   .brand-name {
     font-size: 15px;
     font-weight: 600;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #fff;
     letter-spacing: 0.01em;
   }
   
   /* Copy */
   .left-copy {
     flex: 1;
     display: flex;
     flex-direction: column;
     justify-content: center;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     padding: 2rem 0;
   }
   
   .left-copy h1 {
     font-size: 32px;
     font-weight: 300;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #fff;
     line-height: 1.3;
     margin-bottom: 16px;
     letter-spacing: -0.5px;
   }
   
   .left-copy h1 em {
     font-style: normal;
     font-weight: 600;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #85C1F5;
   }
   
   .left-copy p {
     font-size: 13.5px;
     font-weight: 300;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: rgba(255, 255, 255, 0.55);
     line-height: 1.8;
   }
   
   .left-footer {
     font-size: 11.5px;
     font-weight: 300;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: rgba(255, 255, 255, 0.28);
     letter-spacing: 0.02em;
   }
   
   /* ============================================================
      RIGHT PANEL — form login
      ============================================================ */
   .right-panel {
     padding: 2.8rem 2.5rem;
     display: flex;
     flex-direction: column;
     justify-content: center;
     position: relative;
   
     /* Panel kanan putih semi-transparan */
     background: rgba(255, 255, 255, 0.96);
     backdrop-filter: blur(12px);
     -webkit-backdrop-filter: blur(12px);
   }
   
   /* Tombol Kembali */
   .btn-back {
     display: inline-flex;
     align-items: center;
     gap: 5px;
     font-size: 12.5px;
     font-weight: 500;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #64748b;
     text-decoration: none;
     margin-bottom: 1.8rem;
     width: fit-content;
     padding: 5px 11px 5px 7px;
     border: 1px solid #e2e8f0;
     border-radius: 8px;
     transition: background 0.15s, color 0.15s, border-color 0.15s;
     letter-spacing: 0.01em;
   }
   
   .btn-back:hover {
     background: #f1f5f9;
     color: #0C447C;
     border-color: #cbd5e1;
   }
   
   .btn-back svg {
     width: 14px;
     height: 14px;
   }
   
   /* Form header */
   .form-header {
     margin-bottom: 1.8rem;
   }
   
   .form-header h2 {
     font-size: 24px;
     font-weight: 600;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #0f172a;
     margin-bottom: 4px;
     letter-spacing: -0.4px;
   }
   
   .form-header p {
     font-size: 13.5px;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     font-weight: 300;
     color: #94a3b8;
   }
   
   /* Alerts */
   .alert {
     padding: 10px 14px;
     border-radius: 8px;
     font-size: 13px;
     font-weight: 400;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     margin-bottom: 16px;
     line-height: 1.6;
   }
   
   .alert-danger {
     background: #fef2f2;
     border: 1px solid #fecaca;
     color: #b91c1c;
   }
   
   .alert-success {
     background: #f0fdf4;
     border: 1px solid #bbf7d0;
     color: #15803d;
   }
   
   /* Form groups */
   .form-group {
     margin-bottom: 15px;
   }
   
   .form-group label {
     display: block;
     font-size: 11px;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     font-weight: 600;
     color: #475569;
     letter-spacing: 0.08em;
     text-transform: uppercase;
     margin-bottom: 7px;
   }
   
   .form-group input[type="email"],
   .form-group input[type="password"],
   .form-group input[type="text"] {
     width: 100%;
     height: 42px;
     padding: 0 14px;
     font-size: 14px;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     font-weight: 400;
     background: #f8fafc;
     border: 1px solid #e2e8f0;
     border-radius: 9px;
     color: #0f172a;
     outline: none;
     transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
   }
   
   .form-group input[type="email"]:focus,
   .form-group input[type="password"]:focus,
   .form-group input[type="text"]:focus {
     border-color: #3b82f6;
     box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.10);
     background: #fff;
   }
   
   .form-group input::placeholder {
     color: #cbd5e1;
     font-weight: 300;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
   }
   
   /* Password toggle */
   .input-password-wrapper {
     position: relative;
   }
   
   .input-password-wrapper input {
     padding-right: 44px;
   }
   
   .toggle-password {
     position: absolute;
     right: 12px;
     top: 50%;
     transform: translateY(-50%);
     background: none;
     border: none;
     cursor: pointer;
     color: #cbd5e1;
     display: flex;
     align-items: center;
     padding: 0;
     transition: color 0.15s;
   }
   
   .toggle-password:hover {
     color: #64748b;
   }
   
   .toggle-password svg {
     width: 16px;
     height: 16px;
   }
   
   /* Remember & Forgot */
   .form-row {
     display: flex;
     justify-content: space-between;
     align-items: center;
     margin-bottom: 20px;
     margin-top: -2px;
   }
   
   .remember {
     display: flex;
     align-items: center;
     gap: 7px;
     font-size: 13px;
     font-weight: 400;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     color: #64748b;
     cursor: pointer;
     user-select: none;
     text-transform: none;
     letter-spacing: normal;
   }
   
   .remember input[type="checkbox"] {
     width: 14px;
     height: 14px;
     accent-color: #0C447C;
     cursor: pointer;
   }
   
   .forgot {
     font-size: 13px;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     font-weight: 500;
     color: #3b82f6;
     text-decoration: none;
     transition: color 0.15s;
   }
   
   .forgot:hover {
     color: #0C447C;
     text-decoration: underline;
   }
   
   /* Turnstile */
   .turnstile-wrapper {
     margin-bottom: 18px;
     display: flex;
     justify-content: flex-start;
   }
   
   .turnstile-wrapper .cf-turnstile {
     transform-origin: left top;
   }
   
   /* Tombol Login */
   .btn-login {
     width: 100%;
     height: 44px;
     background: #0C447C;
     color: #fff;
     border: none;
     border-radius: 9px;
     font-family: 'Geist', 'Helvetica Neue', Arial, sans-serif;
     font-size: 14px;
     font-weight: 500;
     letter-spacing: 0.02em;
     cursor: pointer;
     transition: background 0.2s, transform 0.1s, box-shadow 0.2s;
     box-shadow: 0 4px 16px rgba(12, 68, 124, 0.28);
   }
   
   .btn-login:hover {
     background: #155E9E;
     box-shadow: 0 6px 20px rgba(12, 68, 124, 0.36);
   }
   
   .btn-login:active {
     transform: scale(0.985);
   }
   
   /* ============================================================
      RESPONSIVE
      ============================================================ */
   @media (max-width: 640px) {
     body {
       padding: 0;
       align-items: stretch;
       background-attachment: scroll;
     }
   
     .login-wrapper {
       min-height: 100vh;
       align-items: flex-start;
     }
   
     .login-container {
       grid-template-columns: 1fr;
       border-radius: 0;
       min-height: 100vh;
       border: none;
       box-shadow: none;
     }
   
     .left-panel {
       min-height: 200px;
     }
   
     .left-content {
       padding: 2rem 1.8rem 1.6rem;
     }
   
     .left-copy h1 {
       font-size: 24px;
     }
   
     .left-copy p {
       display: none;
     }
   
     .right-panel {
       padding: 2rem 1.8rem 2.5rem;
       justify-content: flex-start;
     }
   
     .turnstile-wrapper .cf-turnstile {
       transform: scale(0.9);
       transform-origin: left top;
     }
   }
   
   @media (max-width: 380px) {
     .turnstile-wrapper .cf-turnstile {
       transform: scale(0.76);
       transform-origin: left top;
     }
   }