/* ==========================
   AUTH PAGE
========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:'Poppins',sans-serif;

    background:linear-gradient(135deg,#F8F5FF,#F4F9FF);

}

.auth-wrapper{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:60px 20px;

}

.auth-card{

    width:100%;

    max-width:850px;

    background:#fff;

    border-radius:25px;

    padding:45px;

    box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.auth-logo{

    width:90px;

    height:90px;

    object-fit:cover;

    border-radius:50%;

    display:block;

    margin:auto;

    margin-bottom:20px;

    box-shadow:0 12px 30px rgba(123,77,184,.25);

}

.auth-card h2{

    font-weight:700;

    color:#30265B;

}

.auth-card p{

    color:#6B7280;

    margin-bottom:30px;

}

.form-label{

    font-weight:600;

    color:#30265B;

}

.form-control,
.form-select{

    height:52px;

    border-radius:12px;

}

textarea.form-control{

    height:auto;

}

.hero-btn{

    width:100%;

    height:55px;

    border:none;

    border-radius:12px;

    background:linear-gradient(135deg,#A06BEF,#7B4DB8);

    color:#fff;

    font-weight:600;

    transition:.3s;

}

.hero-btn:hover{

    transform:translateY(-2px);

}

.progress{

    border-radius:20px;

}

@media(max-width:768px){

.auth-card{

padding:30px;

}

}
/* ==========================
   FLATPICKR IMPROVED THEME
========================== */

.flatpickr-calendar{
    border: none;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(123,77,184,.18);
    font-family: 'Poppins', sans-serif;
}

/* Header */

.flatpickr-months{
    background: #7B4DB8;
}

.flatpickr-current-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year{
    color: #fff !important;
    font-weight: 600;
}

.flatpickr-prev-month svg,
.flatpickr-next-month svg{
    fill: #fff !important;
}

/* Weekdays */

.flatpickr-weekday{
    color: #7B4DB8 !important;
    font-weight: 600;
}

/* Normal Days */

.flatpickr-day{
    color: #333 !important;
    border-radius: 8px;
}

/* Hover */

.flatpickr-day:hover{
    background: #EEE6FF;
    color: #7B4DB8;
}

/* Selected Day */

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
    background: #7B4DB8 !important;
    border-color: #7B4DB8 !important;
    color: #fff !important;
}

/* Today */

.flatpickr-day.today{
    border: 2px solid #7B4DB8;
}

/* Month Dropdown */

.flatpickr-monthDropdown-months{
    background: #7B4DB8 !important;
    color: #fff !important;
}

.flatpickr-monthDropdown-month{
    color: #333 !important;
    background: #fff !important;
}

.flatpickr-monthDropdown-month:hover{
    background: #EEE6FF !important;
    color: #7B4DB8 !important;
}

/* Hide days from previous/next month */
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay{
    color:#d6d6d6 !important;
    opacity:.35;
}
.top-actions{
    display:flex;
    justify-content:flex-start;
    margin-bottom:10px;
}

.btn-back{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#F4EEFF;
    color:#7B4DB8;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    transition:.3s;
}

.btn-back:hover{
    background:#7B4DB8;
    color:#fff;
    transform:translateX(-2px);
}


.auth-container{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:40px 20px;

    background:linear-gradient(135deg,#F8F5FF,#EEF2FF);

}

/* ==========================
   OTP
========================== */

.otp-wrapper{

display:flex;

justify-content:center;

gap:12px;

margin-bottom:25px;

}

.otp-input{

width:60px;

height:65px;

border:2px solid #D9D6F5;

border-radius:14px;

font-size:28px;

font-weight:700;

text-align:center;

transition:.3s;

background:#fff;

}

.otp-input:focus{

border-color:#7B4DB8;

box-shadow:0 0 0 4px rgba(123,77,184,.15);

outline:none;

}

.otp-timer{

font-size:15px;

color:#666;

}

.otp-timer strong{

color:#7B4DB8;

font-size:18px;

}

/* ==========================================
   MAINTENANCE ALERT
========================================== */

.maintenance-alert {
    display: flex;
    align-items: center;
    gap: 14px;

    padding: 14px 16px;
    margin-bottom: 20px;

    border: 1px solid #ddd0ff;
    border-radius: 12px;

    background: #f7f3ff;
}

.maintenance-alert-icon {
    width: 42px;
    height: 42px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: #7c3aed;
    color: #ffffff;

    font-size: 17px;
}

.maintenance-alert-content strong {
    display: block;

    color: #4c1d95;

    font-size: 13px;
    font-weight: 700;
}

.maintenance-alert-content p {
    margin: 3px 0 0;

    color: #6b5a8e;

    font-size: 11px;
    line-height: 1.5;
}



/* ==========================================
   REGISTRATION - COMPACT 100% VIEW
========================================== */
.auth-wrapper{
    min-height:100vh;
    align-items:center;
    padding:10px 16px;
}
.auth-card{
    width:min(1180px,100%);
    max-width:1180px;
    padding:18px 26px 14px;
    border-radius:20px;
}
.auth-logo{width:52px;height:52px;margin-bottom:4px;box-shadow:0 8px 20px rgba(123,77,184,.18)}
.auth-card .text-center.mb-4{margin-bottom:8px!important}
.auth-card h2{font-size:23px;margin-top:3px!important}
.auth-card .text-center p{font-size:11px;margin:1px 0 0}
.auth-card form>.registration-layout{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:18px;
    align-items:start;
}
.registration-fields,.registration-location{min-width:0}
.registration-section-title{
    display:flex;align-items:center;gap:7px;color:#30265B;font-size:12px;font-weight:700;margin:0 0 6px
}
.registration-section-title i{color:#7B4DB8;width:18px;text-align:center}
.registration-section-title.dog-title,.registration-section-title.password-title{margin-top:8px}
.auth-card .form-label{font-size:10px;margin-bottom:2px}
.auth-card .form-control,.auth-card .form-select,.auth-card .input-group .btn{
    height:37px;min-height:37px;border-radius:8px;font-size:11px
}
.auth-card .input-group .form-control{border-top-right-radius:0;border-bottom-right-radius:0}
.auth-card .input-group .btn{border-top-left-radius:0;border-bottom-left-radius:0}
.auth-card .invalid-feedback{font-size:9px;margin-top:1px}
#passwordText,.location-message{display:block;font-size:8px;line-height:1.25}
.location-tools{display:grid;grid-template-columns:1fr;gap:5px}
.location-buttons{display:flex;gap:5px}
.location-buttons .btn{height:34px;padding:0 9px;border-radius:8px;font-size:10px}
.location-message{margin:4px 0 5px;color:#6B7280}
#locationMap{width:100%;height:220px;min-height:220px;border-radius:11px;overflow:hidden;border:1px solid #e5e7eb}
.location-fields{margin-top:5px!important}
.location-fields .form-control{background:#f8f8fb}
.auth-card form>.col-12.mb-4{margin-top:9px;margin-bottom:8px!important}
.auth-card .form-check{font-size:9px}
.auth-card .hero-btn{height:42px;font-size:12px}
.auth-card form>.col-12.text-center.mt-4{margin-top:6px!important}
.auth-card form>.col-12.text-center.mt-4 p{font-size:10px;margin:0}
.top-actions{margin-bottom:0}.btn-back{width:32px;height:32px;font-size:11px}
@media (max-height:820px) and (min-width:769px){
    .auth-wrapper{padding:6px 12px}
    .auth-card{padding:12px 22px 10px}
    .auth-logo{width:44px;height:44px}
    .auth-card h2{font-size:20px}
    .auth-card form>.registration-layout{gap:14px}
    #locationMap{height:185px;min-height:185px}
    .registration-section-title.dog-title,.registration-section-title.password-title{margin-top:5px}
    .auth-card .form-control,.auth-card .form-select,.auth-card .input-group .btn{height:34px;min-height:34px}
    .auth-card form>.col-12.mb-4{margin-top:5px}
    .auth-card .hero-btn{height:38px}
}
@media (max-width:768px){
    .auth-wrapper{padding:12px 9px}
    .auth-card{padding:16px 13px}
    .auth-card form>.registration-layout{grid-template-columns:1fr;gap:13px}
    #locationMap{height:250px;min-height:250px}
    .location-buttons{flex-wrap:wrap}.location-buttons .btn{flex:1}
}

/* ==========================================
   LOCATION SEARCH RESULTS / EDITABLE ADDRESS
========================================== */
.location-search-results{
    margin:6px 0 8px;
    border:1px solid #e5def2;
    border-radius:10px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 8px 22px rgba(123,77,184,.10);
    max-height:240px;
    overflow-y:auto;
}
.location-result{
    width:100%;
    display:flex;
    align-items:center;
    gap:9px;
    padding:9px 11px;
    margin:0;
    border:0;
    border-bottom:1px solid #eeeaf6;
    background:#fff;
    color:inherit;
    text-align:left;
    font:inherit;
    cursor:pointer;
    appearance:none;
    transition:background .15s ease, box-shadow .15s ease;
}
.location-result:last-child{border-bottom:0}
.location-result:hover,.location-result:focus{
    background:#f8f4ff;
    outline:0;
}
.location-result:focus-visible{
    box-shadow:inset 0 0 0 2px rgba(123,77,184,.22);
}
.location-result-icon{
    width:30px;height:30px;flex:0 0 30px;
    display:flex;align-items:center;justify-content:center;
    border-radius:8px;background:#f0e8ff;color:#7B4DB8;font-size:12px;
}
.location-result-text{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
}
.location-result-text strong{
    font-size:11px;
    line-height:1.2;
    color:#30265B;
    font-weight:700;
}
.location-result-text small{
    font-size:9px;
    line-height:1.35;
    color:#746C89;
    white-space:normal;
    overflow-wrap:anywhere;
}
.location-result-empty{padding:10px 11px;font-size:10px;line-height:1.4;color:#746C89}
.location-update-btn{height:32px;padding:0 10px;border-radius:8px;font-size:10px}
.location-fields .form-control{background:#fff}
.location-fields .form-control:focus{background:#fff}
@media (max-width:768px){
    .location-search-results{max-height:210px}
    .location-result{padding:10px}
    .location-result-text strong{font-size:10px}
    .location-result-text small{font-size:9px}
}
