:root{
    --ps-green:#84f14e;
    --ps-green-2:#35b84b;
    --ps-dark:#001f17;
    --ps-dark-2:#062f24;
    --ps-white:#ffffff;
    --ps-muted:#6f7b77;
    --ps-border:rgba(255,255,255,.14);
    --ps-card:#ffffff;
    --ps-danger:#dc3545;
    --ps-shadow:0 24px 70px rgba(0,31,23,.22);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body.ps-login-body{
    margin:0;
    font-family:'Inter','Roboto',Arial,sans-serif;
    color:#10221c;
    background:
        radial-gradient(circle at top left, rgba(132,241,78,.25), transparent 35%),
        linear-gradient(135deg,#001f17 0%,#063326 46%,#effaf1 46%,#ffffff 100%);
    overflow-x:hidden;
}
.ps-login-page{
    min-height:100vh;
    padding:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}
.ps-login-page:before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size:48px 48px;
    pointer-events:none;
    opacity:.55;
}
.ps-shell{
    width:min(1160px,100%);
    min-height:690px;
    background:rgba(255,255,255,.86);
    border:1px solid rgba(255,255,255,.7);
    border-radius:34px;
    box-shadow:var(--ps-shadow);
    overflow:hidden;
    display:grid;
    grid-template-columns:1.04fr .96fr;
    position:relative;
    z-index:1;
    backdrop-filter:blur(18px);
}
.ps-hero-panel{
    color:#fff;
    padding:42px;
    position:relative;
    background:
        linear-gradient(160deg, rgba(0,31,23,.98), rgba(5,61,45,.95)),
        radial-gradient(circle at 85% 18%, rgba(132,241,78,.28), transparent 30%);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    overflow:hidden;
}
.ps-hero-panel:before{
    content:"";
    position:absolute;
    width:520px;height:520px;
    right:-210px;top:-160px;
    border:1px solid rgba(132,241,78,.16);
    border-radius:50%;
    box-shadow:0 0 0 34px rgba(132,241,78,.055),0 0 0 70px rgba(132,241,78,.035),0 0 0 112px rgba(132,241,78,.02);
}
.ps-hero-panel:after{
    content:"";
    position:absolute;
    width:170px;height:170px;
    left:30px;bottom:150px;
    border-radius:38px;
    background:linear-gradient(135deg,rgba(132,241,78,.18),rgba(255,255,255,.04));
    transform:rotate(16deg);
    filter:blur(.1px);
}
.ps-brand-row,.ps-form-topbar{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.ps-brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}
.ps-brand-logo{
    width:46px;height:46px;
    border-radius:14px;
    background:rgba(255,255,255,.08);
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--ps-border);
    overflow:hidden;
    flex:0 0 auto;
}
.ps-brand-logo img{max-width:100%;max-height:100%;object-fit:contain;padding:4px}
.ps-brand-text strong{display:block;font-size:24px;line-height:1;font-weight:900;letter-spacing:-.03em}
.ps-brand-text span{display:block;font-size:12px;color:rgba(255,255,255,.74);margin-top:4px}
.ps-home-link,.ps-switch-link{
    color:#fff;
    text-decoration:none;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    padding:10px 14px;
    font-weight:700;
    font-size:13px;
    transition:.2s ease;
    white-space:nowrap;
}
.ps-home-link:hover,.ps-switch-link:hover{color:#001f17;background:var(--ps-green);border-color:var(--ps-green);text-decoration:none}
.ps-hero-copy{position:relative;z-index:2;margin-top:56px;max-width:560px}
.ps-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(132,241,78,.13);
    color:#c7ff9e;
    border:1px solid rgba(132,241,78,.35);
    border-radius:999px;
    padding:9px 13px;
    font-size:13px;
    font-weight:800;
}
.ps-hero-copy h1{
    font-size:56px;
    line-height:.98;
    letter-spacing:-.055em;
    margin:18px 0 18px;
    font-weight:900;
}
.ps-hero-copy h1 span{color:var(--ps-green)}
.ps-hero-copy p{
    font-size:17px;
    line-height:1.65;
    color:rgba(255,255,255,.78);
    margin:0;
    max-width:520px;
}
.ps-feature-grid{
    position:relative;z-index:2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:34px;
}
.ps-feature{
    display:flex;align-items:center;gap:10px;
    padding:13px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:18px;
    background:rgba(255,255,255,.06);
    min-height:68px;
}
.ps-feature i{
    width:34px;height:34px;border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(132,241,78,.15);
    color:var(--ps-green);
    flex:0 0 auto;
}
.ps-feature strong{display:block;font-size:13px;color:#fff}
.ps-feature span{display:block;font-size:12px;color:rgba(255,255,255,.65);margin-top:2px}
.ps-methods{
    position:relative;z-index:2;
    margin-top:36px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.ps-methods span{
    display:inline-flex;align-items:center;gap:7px;
    padding:9px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    color:rgba(255,255,255,.82);
    font-size:12px;font-weight:800;
}
.ps-form-panel{
    padding:36px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:
        radial-gradient(circle at top right,rgba(132,241,78,.18),transparent 38%),
        #fff;
}
.ps-form-topbar{margin-bottom:26px}
.ps-mobile-brand{display:none;color:#001f17}
.ps-switch-link{color:#063326;border-color:rgba(6,51,38,.15);background:#f4fbf1}
.ps-switch-link:hover{background:#063326;color:#fff;border-color:#063326}
.ps-form-card{
    background:var(--ps-card);
    border:1px solid rgba(0,31,23,.08);
    border-radius:28px;
    padding:34px;
    box-shadow:0 18px 54px rgba(0,31,23,.10);
}
.ps-form-heading{margin-bottom:24px}
.ps-kicker{
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--ps-green-2);
    font-size:12px;
    font-weight:900;
    margin-bottom:8px;
}
.ps-form-heading h2{
    margin:0;
    font-size:36px;
    line-height:1.05;
    letter-spacing:-.045em;
    font-weight:900;
    color:#09231b;
}
.ps-form-heading p{margin:12px 0 0;color:var(--ps-muted);font-size:15px;line-height:1.55}
.ps-portal-pills{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.ps-portal-pills span{
    border-radius:999px;
    padding:8px 10px;
    background:#f1f9ee;
    color:#1b512b;
    font-size:12px;
    font-weight:800;
}
.ps-alert{border-radius:16px!important;border:none!important;padding:13px 15px!important;font-weight:700}
.ps-field{margin-bottom:16px;position:relative}
.ps-field label{font-size:13px;color:#20332c;margin-bottom:8px;font-weight:800;display:block}
.ps-field .form-control{
    height:54px;
    border:1px solid rgba(0,31,23,.12);
    border-radius:16px;
    box-shadow:none;
    padding:0 46px 0 16px;
    color:#0e241d;
    background:#fbfdfb;
    font-size:15px;
    transition:.2s ease;
}
.ps-field .form-control:focus{
    border-color:var(--ps-green-2);
    box-shadow:0 0 0 4px rgba(132,241,78,.18);
    background:#fff;
}
.ps-field .fa{
    position:absolute;
    right:16px;
    top:42px;
    color:#71b55b;
}
.ps-captcha-row{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:12px;
    margin-bottom:16px;
    align-items:center;
}
.ps-captcha-image{
    min-height:54px;
    border-radius:16px;
    background:#f8fbf7;
    border:1px solid rgba(0,31,23,.1);
    display:flex;align-items:center;justify-content:center;
    padding:8px;
    position:relative;
}
.ps-captcha-image img{max-width:100%;height:auto}
.ps-refresh{
    cursor:pointer;
    margin-left:8px;
    color:var(--ps-green-2);
    font-size:18px;
}
.ps-submit{
    width:100%;
    height:56px;
    border:0;
    border-radius:17px;
    background:linear-gradient(135deg,var(--ps-green),#33c851);
    color:#052116;
    font-weight:900;
    font-size:15px;
    box-shadow:0 13px 26px rgba(53,184,75,.26);
    transition:.2s ease;
}
.ps-submit:hover,.ps-submit:focus{transform:translateY(-1px);box-shadow:0 16px 30px rgba(53,184,75,.34);color:#052116;outline:none}
.ps-form-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:18px;
    flex-wrap:wrap;
}
.ps-forgot{color:#0c5c35;font-weight:800;text-decoration:none;font-size:13px}
.ps-forgot:hover{color:#001f17;text-decoration:none}
.ps-back-home{color:#6d7b76;font-size:13px;text-decoration:none;font-weight:700}
.ps-back-home:hover{color:#001f17;text-decoration:none}
.ps-small-note{
    margin-top:22px;
    padding:14px 16px;
    border-radius:18px;
    background:#f6fbf4;
    color:#4e625b;
    line-height:1.55;
    font-size:13px;
    border:1px solid rgba(0,31,23,.06);
}
.ps-small-note strong{color:#0b2d21}
.text-danger{font-size:12px;font-weight:700;margin-top:5px;display:block}
.ps-parent .ps-hero-panel{
    background:
        linear-gradient(160deg, rgba(0,31,23,.98), rgba(5,61,45,.92)),
        radial-gradient(circle at 75% 12%, rgba(132,241,78,.25), transparent 32%);
}
.ps-parent .ps-badge{color:#dcffc7}
@media (max-width: 980px){
    body.ps-login-body{background:#f5fbf3}
    .ps-login-page{padding:16px;align-items:flex-start}
    .ps-shell{grid-template-columns:1fr;border-radius:26px;min-height:auto}
    .ps-hero-panel{padding:28px;min-height:440px}
    .ps-hero-copy{margin-top:38px}
    .ps-hero-copy h1{font-size:42px}
    .ps-form-panel{padding:22px}
    .ps-mobile-brand{display:flex}
    .ps-form-topbar{display:flex}
}
@media (max-width: 560px){
    .ps-login-page{padding:0}
    .ps-shell{border-radius:0;box-shadow:none;border:0}
    .ps-hero-panel{min-height:auto;padding:24px}
    .ps-brand-row{align-items:flex-start}
    .ps-home-link{padding:8px 10px;font-size:12px}
    .ps-hero-copy h1{font-size:35px}
    .ps-hero-copy p{font-size:14px}
    .ps-feature-grid{grid-template-columns:1fr;margin-top:24px}
    .ps-methods{margin-top:24px}
    .ps-form-card{padding:22px;border-radius:22px;box-shadow:none}
    .ps-form-heading h2{font-size:29px}
    .ps-captcha-row{grid-template-columns:1fr}
    .ps-form-footer{display:block}
    .ps-form-footer a{display:block;margin-top:12px}
}
.input-error{border-color:var(--ps-danger)!important;box-shadow:0 0 0 4px rgba(220,53,69,.12)!important}
