/**
 * =============================================================================
 * FORGOT PASSWORD PAGE STYLESHEET
 * =============================================================================
 * 
 * Project: Peace Lutheran Childcare Calendar (PLCC)
 * File: forgot_pw.css
 * 
 * Purpose:
 * --------
 * Styles specific to the password reset page. Very similar to login.css
 * but includes additional elements like subtitle text and enhanced
 * button interactions.
 * 
 * Page Structure:
 * ---------------
 * - Fixed navbar with organization branding
 * - Centered white wrapper container
 * - Heading with descriptive subtitle
 * - Single-field form (email only)
 * - Back to login link
 * 
 * Differences from login.css:
 * ---------------------------
 * - Includes subtitle styling for instructional text
 * - Button has transform animation on hover
 * - Different form gap spacing
 * - Additional mobile breakpoint styles
 * 
 * =============================================================================
 */

/* =============================================================================
   GOOGLE FONTS IMPORT
   ============================================================================= */
/* Nunito - friendly, rounded font used throughout the application */
@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');

/* =============================================================================
   CSS CUSTOM PROPERTIES (VARIABLES)
   ============================================================================= */
/* 
 * Color palette for the forgot password page
 * Similar to login.css with addition of subtitle color
 */
:root{
    /* Primary brand color - purple */
    --accent-color: rgb(104, 44, 128);
    
    /* Base/background color - white */
    --base-color: rgb(255, 255, 255);
    
    /* Primary text color - black */
    --text-color: rgb(0, 0, 0);
    
    /* Form input background - light purple */
    --input-color: rgb(212, 163, 255);
    
    /* Subtitle text color - medium gray */
    --subtitle-color: rgb(102, 102, 102);
}

/* =============================================================================
   UNIVERSAL RESET
   ============================================================================= */
/* Remove default browser margins and padding */
*{
    margin: 0;
    padding: 0;
}

/* =============================================================================
   HTML ROOT STYLES
   ============================================================================= */
html{
    font-family: Nunito;
    font-size: 12pt;
    color: var(--text-color);
    text-align: center;
}

/* =============================================================================
   BODY STYLES
   ============================================================================= */
body{
    min-height: 100vh;             /* Full viewport height */
    background-image: url('/calendar/media/login_bg.jpg');
    background-size: cover;        /* Cover entire background */
    background-position: right;    /* Align background to right */
    overflow: hidden;              /* Prevent scrollbars */
    padding-top: 80px;             /* Space for fixed navbar */
}

/* =============================================================================
   NAVIGATION BAR
   ============================================================================= */
/* Fixed navbar at top of page with organization branding */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    background-color: var(--accent-color);
    padding: 1rem 2rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    z-index: 1000;                  /* Above all other content */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Navbar branding container (logo + title) */
.navbar-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* Organization logo image */
.navbar-logo {
    height: 40px;
    width: auto;
    border-radius: 4px;
}

/* Organization title text */
.navbar-title {
    color: var(--base-color);
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
}

/* =============================================================================
   MAIN WRAPPER CONTAINER
   ============================================================================= */
/* White card container that holds the form */
.wrapper{
    box-sizing: border-box;
    background-color: var(--base-color);
    height: 100vh;
    width: max(40%, 600px);        /* At least 40% or 600px */
    padding: 10px;
    border-radius: 0 20px 20px 0;  /* Rounded corners on right side */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* =============================================================================
   PAGE HEADING
   ============================================================================= */
h1{
    font-size: 3rem;
    font-weight: 900;
    text-transform: uppercase;
    margin-bottom: 10px;           /* Space before subtitle */
}

/* =============================================================================
   SUBTITLE TEXT
   ============================================================================= */
/* 
 * Instructional text below the heading
 * Explains what the user should do on this page
 */
.subtitle {
    font-size: 1rem;
    color: var(--subtitle-color);  /* Gray color for secondary text */
    margin-bottom: 30px;
    max-width: 400px;              /* Prevent overly wide text */
    line-height: 1.4;              /* Comfortable reading line height */
}

/* =============================================================================
   FORM CONTAINER
   ============================================================================= */
/* 
 * Centered form with vertical layout
 * Uses min() for responsive width capping
 */
form{
    width: min(400px, 100%);       /* Max 400px or 100% on small screens */
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;                     /* Slightly larger gap than login form */
}

/* =============================================================================
   FORM ROW CONTAINERS
   ============================================================================= */
/* Each form row contains a label + input pair */
form > div{
    width: 100%;
    display: flex;
    justify-content: center;
}

/* =============================================================================
   FORM LABELS (Icon Containers)
   ============================================================================= */
/* 
 * Square icon containers attached to left side of inputs
 * Contains SVG icons or text characters (@ symbol for email)
 */
form label{
    flex-shrink: 0;               /* Don't shrink below size */
    height: 50px;
    width: 50px;
    background-color: var(--accent-color);
    fill: var(--base-color);      /* For SVG icons */
    color: var(--base-color);     /* For text icons */
    border-radius: 10px 0 0 10px; /* Rounded left corners only */
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.5rem;
    font-weight: 500;
}

/* =============================================================================
   FORM INPUT FIELDS
   ============================================================================= */
/* 
 * Text inputs attached to labels with connected border radius
 * Purple background that transitions on hover/focus
 */
form input{
    box-sizing: border-box;
    flex-grow: 1;                 /* Fill remaining space */
    min-width: 0;                 /* Allow shrinking below content size */
    height: 50px;
    padding: 1em;
    font: inherit;
    border-radius: 0 10px 10px 0; /* Rounded right corners only */
    border: 2px solid var(--input-color);
    border-left: none;            /* Label handles left border */
    background-color: var(--input-color);
    transition: 150ms ease;
}

/* =============================================================================
   INPUT INTERACTIVE STATES
   ============================================================================= */
/* Hover: highlight border with accent color */
form input:hover{
    border-color: var(--accent-color);
}

/* Focus: stronger border color, remove default outline */
form input:focus{
    outline: none;
    border-color: var(--text-color);
}

/* When input is focused, darken the adjacent label */
div:has(input:focus) > label{
    background-color: var(--text-color);
}

/* Placeholder text styling - ensure full opacity */
form input::placeholder{
    color: var(--text-color);
    opacity: 1;                   /* Override browser default opacity */
}

/* =============================================================================
   SUBMIT BUTTON
   ============================================================================= */
/* 
 * Pill-shaped button with enhanced interactions
 * Includes translateY animation on hover for lift effect
 */
form button{
    margin-top: 10px;
    border: none;
    border-radius: 1000px;        /* Pill shape (high value for rounded ends) */
    padding: .85em 4em;           /* Wide horizontal padding */
    background-color: var(--accent-color);
    color: var(--base-color);
    font: inherit;
    font-weight: 600;             /* Semi-bold for emphasis */
    transition: 150ms ease;
    cursor: pointer;
}

/* Hover: darken and lift button slightly */
form button:hover{
    background-color: var(--text-color);
    transform: translateY(-2px);  /* Subtle lift effect */
}

/* Focus: darken to text color, remove default outline */
form button:focus{
    outline: none;
    background-color: var(--text-color);
}

/* =============================================================================
   LINK STYLES
   ============================================================================= */
/* 
 * "Back to login" link with enhanced transitions
 * Includes color change on hover
 */
a{
    text-decoration: none;
    color: var(--accent-color);
    font-weight: 500;             /* Medium weight for visibility */
    transition: all 0.2s ease;
}

/* Hover: underline and change to text color */
a:hover{
    text-decoration: underline;
    color: var(--text-color);
}

/* =============================================================================
   RESPONSIVE DESIGN - TABLET
   ============================================================================= */
/* 
 * Below 1100px: center wrapper and remove asymmetric border radius
 * This creates a more centered card appearance on smaller screens
 */
@media(max-width: 1100px){
    .wrapper{
        width: min(600px, 100%);
        border-radius: 0;         /* Remove rounded corners */
    }
}

/* =============================================================================
   RESPONSIVE DESIGN - MOBILE
   ============================================================================= */
/* 
 * Below 768px: additional size reductions for mobile devices
 * Reduces heading size, subtitle, and navbar elements
 */
@media(max-width: 768px){
    /* Smaller heading on mobile */
    h1{
        font-size: 2.5rem;
    }
    
    /* Smaller subtitle text */
    .subtitle{
        font-size: 0.9rem;
        margin-bottom: 25px;
    }
    
    /* Compact navbar padding */
    .navbar{
        padding: 1rem;
    }
    
    /* Smaller navbar title */
    .navbar-title{
        font-size: 1.2rem;
    }
    
    /* Smaller logo */
    .navbar-logo{
        height: 32px;
    }
}