body, html { margin: 0; padding: 0; height: 100%; overflow-x: hidden; }
.ps-wrapper { position: relative; width: 100vw; min-height: 100vh; background-color: #f4f5f7; display: flex; justify-content: center; align-items: center; font-family: "Poppins", sans-serif; margin-left: calc(-50vw + 50%); overflow: hidden; }
.ps-wrapper::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: var(--ps-login-bg); background-size: cover; background-position: center; opacity: 0.2; z-index: 0; }
.ps-logo { position: absolute; top: 30px; left: 30px; max-width: 150px; z-index: 30; }
.ps-bottom-curve { position: absolute; bottom: 0; left: 0; width: 100%; height: 25vh; background-color: #f15a24; border-top-left-radius: 50% 100%; border-top-right-radius: 50% 100%; z-index: 1; }
.ps-center-container { position: relative; z-index: 10; width: 90%; max-width: 450px; margin-top: 80px; }
.ps-login-box { position: relative; background-color: #f15a24; border-radius: 30px; padding: 50px 40px; box-shadow: 0 15px 30px rgba(0,0,0,0.2); text-align: center; z-index: 10; }
.ps-char-top { position: absolute; top: -150px; left: 50%; transform: translateX(-50%); width: 360px; z-index: 20; pointer-events: none; }
.ps-char-left { position: absolute; left: -230px; top: 70px; width: 250px; z-index: 20; pointer-events: none; }
.ps-char-right { position: absolute; right: -228px; top: 70px; width: 250px; transform: scaleX(-1); z-index: 20; pointer-events: none; }
.ps-login-box h2 { color: #ffffff !important; font-size: 26px; font-weight: 700; margin-top: 0; margin-bottom: 35px; line-height: 1.4; position: relative; z-index: 30; }
.ps-login-form input[type="text"], .ps-login-form input[type="password"] { width: 100%; background-color: #f68c5b; border: none !important; border-radius: 30px !important; padding: 18px 25px !important; margin-bottom: 20px !important; color: #ffffff !important; font-size: 16px; box-sizing: border-box; position: relative; z-index: 30; }
.ps-login-form input::placeholder { color: #ffe6dc !important; }
.ps-login-form input:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(255,255,255,0.3) !important; }
.ps-login-form .ps-forgot { display: block; text-align: left; color: #ffffff !important; text-decoration: none; font-size: 14px; margin-bottom: 30px; padding-left: 10px; font-weight: 500; position: relative; z-index: 30; }
.ps-login-form input[type="submit"] { width: 100%; background-color: #ffffff !important; color: #f15a24 !important; border: none !important; border-radius: 30px !important; padding: 18px !important; font-size: 18px !important; font-weight: bold !important; cursor: pointer; transition: all 0.3s; position: relative; z-index: 30; }
.ps-login-form input[type="submit"]:hover { transform: translateY(-2px); background-color: #fafafa !important; box-shadow: 0 5px 15px rgba(0,0,0,0.1); }

@media (max-width: 900px) { 
    .ps-char-left { left: -120px; width: 180px; top: 80px; display: block; }
    .ps-char-right { right: -120px; width: 180px; top: 80px; display: block; }
    .ps-char-top { width: 320px; top: -135px; } 
    .ps-center-container { max-width: 80%; }
}

@media (max-width: 600px) { 
    .ps-char-left, .ps-char-right { display: none !important; } 
    .ps-char-top { width: 280px; top: -118px; } 
    .ps-login-box { padding: 40px 25px; border-radius: 10px;}
    .ps-login-box h2 { font-size: 20px; margin-bottom: 15px; }
    .ps-center-container { margin-top: 120px; width: 90%; }
    .ps-logo { top: -10px !important; left: 50% !important; transform: translateX(-50%) !important; width: 120px !important; max-width: 120px !important; }
}
