:root{
    --pn-navy:#101a2b;
    --pn-navy-light:#1b2a44;
    --pn-gold:#c9a24b;
    --pn-gold-light:#e4c878;
    --pn-border:#e3e6ec;
    --pn-text:#1f2430;
    --pn-muted:#7a8194;
    --pn-danger:#c0392b;
    --pn-danger-bg:#fdecea;
}
body.login-body{
    margin:0;
    min-height:100vh;
    font-family:'Inter',system-ui,sans-serif;
    color:var(--pn-text);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    box-sizing:border-box;
    background:
        radial-gradient(circle at 20% 15%, rgba(201,162,75,0.16), transparent 45%),
        radial-gradient(circle at 85% 85%, rgba(201,162,75,0.10), transparent 40%),
        linear-gradient(160deg, var(--pn-navy) 0%, var(--pn-navy-light) 55%, #101a2b 100%);
}
.login-shell{
    width:100%;
    max-width:400px;
}
.login-brand{
    text-align:center;
    margin-bottom:28px;
}
.login-brand .mark{
    width:48px; height:48px;
    margin:0 auto 14px;
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,var(--pn-gold-light),var(--pn-gold));
    box-shadow:0 10px 24px -8px rgba(201,162,75,0.6);
}
.login-brand h1{
    font-family:'Playfair Display',serif;
    font-weight:700;
    font-size:23px;
    color:#fff;
    margin:0 0 4px;
    letter-spacing:.01em;
}
.login-brand p{
    margin:0;
    font-size:12.5px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.5);
}
.login-card{
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.45);
    padding:38px 36px 34px;
    position:relative;
    overflow:hidden;
}
.login-card::before{
    content:"";
    position:absolute;
    top:0; left:0; right:0;
    height:3px;
    background:linear-gradient(90deg,var(--pn-gold),var(--pn-gold-light),var(--pn-gold));
}
.login-card h2{
    margin:0 0 6px;
    font-family:'Playfair Display',serif;
    font-weight:700;
    font-size:22px;
    color:var(--pn-text);
}
.login-card .sub{
    margin:0 0 26px;
    font-size:13.5px;
    color:var(--pn-muted);
}
.admin-alert{
    display:flex;
    align-items:flex-start;
    gap:10px;
    background:var(--pn-danger-bg);
    color:var(--pn-danger);
    border:1px solid rgba(192,57,43,0.25);
    padding:12px 16px;
    border-radius:10px;
    font-size:13.5px;
    margin-bottom:22px;
    line-height:1.5;
}
.admin-alert svg{ flex-shrink:0; margin-top:1px; }
.field{
    display:flex;
    flex-direction:column;
    margin-bottom:20px;
}
.field label{
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.03em;
    text-transform:uppercase;
    color:var(--pn-muted);
    margin-bottom:7px;
}
.field input{
    font-family:inherit;
    font-size:14.5px;
    color:var(--pn-text);
    background:#fbfbfd;
    border:1.5px solid var(--pn-border);
    border-radius:10px;
    padding:12px 14px;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
    width:100%;
    box-sizing:border-box;
}
.field input:hover{ border-color:#c7cbd6; }
.field input:focus{
    outline:none;
    border-color:var(--pn-gold);
    background:#fff;
    box-shadow:0 0 0 4px rgba(201,162,75,0.16);
}
.btn-fancy{
    appearance:none;
    border:none;
    cursor:pointer;
    font-family:inherit;
    font-weight:600;
    font-size:14.5px;
    letter-spacing:.01em;
    color:#101a2b;
    background:linear-gradient(135deg,var(--pn-gold-light),var(--pn-gold));
    padding:13px 24px;
    border-radius:10px;
    width:100%;
    box-shadow:0 10px 20px -8px rgba(201,162,75,0.55);
    transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
    margin-top:6px;
}
.btn-fancy:hover{ transform:translateY(-1px); box-shadow:0 14px 26px -8px rgba(201,162,75,0.65); filter:brightness(1.03); }
.btn-fancy:active{ transform:translateY(0); }
.login-signup{
    text-align:center;
    margin:24px 0 0;
    font-size:13.5px;
    color:var(--pn-muted);
}
.login-signup a{
    color:var(--pn-navy);
    font-weight:600;
    text-decoration:none;
    border-bottom:1.5px solid var(--pn-gold);
    padding-bottom:1px;
}
.login-signup a:hover{ color:var(--pn-gold); }
.login-footer{
    text-align:center;
    margin-top:22px;
    font-size:12px;
    color:rgba(255,255,255,0.4);
}

/* Added for forgot/reset pages */
.admin-alert.success{
    background:#eaf6ee;
    color:#1e7a46;
    border-color:rgba(30,122,70,0.25);
}
.field .hint{
    margin-top:6px;
    font-size:12px;
    color:var(--pn-muted);
}
.field-forgot{
    text-align:right;
    margin:-8px 0 18px;
    font-size:13px;
}
.field-forgot a{
    color:var(--pn-muted);
    text-decoration:none;
}
.field-forgot a:hover{ color:var(--pn-navy); text-decoration:underline; }
