/*=================================================
LOVEBIRD BREEDING PRO
Premium UI V2
Author : ChatGPT
==================================================*/

/*==============================
RESET
==============================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;

    background:#F5F7FB;

    color:#111827;

    min-height:100vh;

    display:flex;

    justify-content:center;

}

/*==============================
VARIABLE
==============================*/

:root{

    --primary:#2563EB;
    --primary-dark:#1D4ED8;

    --green:#22C55E;
    --orange:#F59E0B;
    --red:#EF4444;
    --purple:#8B5CF6;

    --bg:#F5F7FB;

    --card:#FFFFFF;

    --border:#E5E7EB;

    --text:#111827;

    --text-light:#6B7280;

    --radius:22px;

    --shadow:

    0 4px 18px rgba(15,23,42,.06);

}

/*==============================
PHONE
==============================*/

.phone{

    width:100%;

    max-width:430px;

    min-height:100vh;

    background:var(--bg);

    position:relative;

    overflow:hidden;

    padding-bottom:110px;

}

/*==============================
TOPBAR
==============================*/

.topbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:

        22px
        20px
        10px;

}

.topbar small{

    color:var(--text-light);

    font-size:.78rem;

}

.topbar h2{

    margin-top:4px;

    font-size:1.45rem;

    color:var(--text);

    font-weight:700;

}

.profile-btn{

    width:48px;

    height:48px;

    border:none;

    border-radius:50%;

    background:white;

    box-shadow:var(--shadow);

    cursor:pointer;

    color:var(--primary);

    transition:.25s;

}

.profile-btn:hover{

    transform:scale(1.05);

}

/*==============================
CONTENT
==============================*/

#content{

    padding:18px;

}

/*==============================
HERO
==============================*/

.hero-card{

    background:

    linear-gradient(

        135deg,

        #3B82F6,

        #6366F1

    );

    border-radius:26px;

    padding:26px;

    color:white;

    margin-bottom:22px;

    box-shadow:

        0 12px 30px

        rgba(59,130,246,.22);

}

.hero-card h3{

    font-size:1.35rem;

    margin-bottom:10px;

}

.hero-card p{

    line-height:1.7;

    opacity:.95;

}

/*==============================
SECTION TITLE
==============================*/

.section-title{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:16px;

}

.section-title h3{

    font-size:1rem;

    font-weight:600;

}

.section-title button{

    border:none;

    background:none;

    color:var(--primary);

    font-weight:600;

    cursor:pointer;

}

/*==============================
CARD
==============================*/

.stat-card,

.today-card,

.kandang-card{

    background:var(--card);

    border-radius:22px;

    border:1px solid var(--border);

    box-shadow:var(--shadow);

}

/*======================================
STATISTIC GRID
======================================*/

.stats-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:16px;

    margin-bottom:24px;

}

.stat-card{

    padding:20px;

    transition:.25s;

    cursor:pointer;

}

.stat-card:hover{

    transform:translateY(-2px);

    box-shadow:
        0 12px 28px rgba(15,23,42,.10);

}

.stat-card span{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:52px;

    height:52px;

    border-radius:16px;

    background:#EFF6FF;

    color:var(--primary);

    font-size:28px;

    margin-bottom:14px;

}

.stat-card h2{

    font-size:2rem;

    color:var(--text);

    margin-bottom:6px;

}

.stat-card small{

    color:var(--text-light);

    font-size:.85rem;

}

/*======================================
TODAY CARD
======================================*/

.today-card{

    padding:22px;

    margin-bottom:24px;

}

.title{

    display:flex;

    align-items:center;

    gap:10px;

    font-weight:600;

    color:var(--text);

    margin-bottom:18px;

}

.today-item{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:14px 0;

    border-bottom:1px solid #F1F5F9;

}

.today-item:last-child{

    border-bottom:none;

}

.today-item span{

    color:var(--text-light);

}

.today-item strong{

    color:var(--text);

}

/*======================================
LIST KANDANG
======================================*/

#kandangList{

    display:flex;

    flex-direction:column;

    gap:16px;

}

/*======================================
CARD KANDANG
======================================*/

.kandang-card{

    padding:20px;

    transition:.25s;

    cursor:pointer;

}

.kandang-card:hover{

    transform:translateY(-3px);

    box-shadow:
        0 12px 30px rgba(15,23,42,.10);

}

.kandang-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:16px;

}

.kandang-title{

    font-size:1.08rem;

    font-weight:700;

    color:var(--text);

}

/*======================================
BADGE
======================================*/

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:7px 14px;

    border-radius:999px;

    font-size:.75rem;

    font-weight:600;

    color:#FFF;

}

.badge.green{

    background:#22C55E;

}

.badge.orange{

    background:#F59E0B;

}

.badge.red{

    background:#EF4444;

}

.badge.blue{

    background:#2563EB;

}

/*======================================
INFO KANDANG
======================================*/

.kandang-info{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:14px;

    margin-top:12px;

}

.kandang-info div{

    background:#F8FAFC;

    border:1px solid #EEF2F7;

    border-radius:14px;

    padding:12px;

}

.kandang-info small{

    display:block;

    color:var(--text-light);

    font-size:.75rem;

    margin-bottom:6px;

}

.kandang-info strong{

    display:block;

    color:var(--text);

    font-size:.95rem;

    font-weight:600;

}

/*======================================
FLOATING ACTION BUTTON
======================================*/

.fab{

    position:fixed;

    right:22px;
    bottom:118px;

    width:58px;
    height:58px;

    border:none;
    outline:none;

    border-radius:18px;

    background:linear-gradient(
        135deg,
        #3B82F6,
        #2563EB
    );

    color:#FFF;

    display:flex;
    align-items:center;
    justify-content:center;

    cursor:pointer;

    box-shadow:
        0 12px 28px rgba(37,99,235,.28);

    transition:
        transform .25s,
        box-shadow .25s;

    z-index:1200;

}

.fab span{

    font-size:32px;

}

.fab:hover{

    transform:translateY(-3px);

    box-shadow:
        0 16px 34px rgba(37,99,235,.35);

}

.fab:active{

    transform:scale(.94);

}



/*======================================
BOTTOM NAVIGATION
======================================*/

.bottom-nav{

    position:fixed;

    left:50%;
    bottom:18px;

    transform:translateX(-50%);

    width:min(390px,92%);

    height:78px;

    display:flex;
    align-items:center;
    justify-content:space-around;

    background:rgba(255,255,255,.94);

    backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);

    border:1px solid rgba(0,0,0,.05);

    border-radius:28px;

    box-shadow:
        0 10px 35px rgba(0,0,0,.10);

    z-index:1000;

}



/*======================================
NAV BUTTON
======================================*/

.nav-btn{

    flex:1;

    height:100%;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:5px;

    text-decoration:none;

    color:#8B95A7;

    transition:.28s;

    position:relative;

    -webkit-tap-highlight-color:transparent;

}

.nav-btn span{

    font-size:25px;

    transition:.28s;

}

.nav-btn small{

    font-size:11px;

    font-weight:600;

    transition:.28s;

}



/*======================================
ACTIVE
======================================*/

.nav-btn.active{

    color:#2563EB;

}

.nav-btn.active span{

    transform:
        translateY(-3px)
        scale(1.10);

    font-variation-settings:
        "FILL" 1,
        "wght" 600,
        "GRAD" 0,
        "opsz" 24;

}

.nav-btn.active small{

    font-weight:700;

}

.nav-btn.active::after{

    content:"";

    position:absolute;

    bottom:8px;

    width:24px;
    height:4px;

    border-radius:999px;

    background:#2563EB;

}



/*======================================
HOVER
======================================*/

.nav-btn:hover{

    color:#2563EB;

}

.nav-btn:hover span{

    transform:translateY(-2px);

}



/*======================================
BOTTOM SHEET
======================================*/

.sheet-overlay{

    position:fixed;

    inset:0;

    background:rgba(15,23,42,.45);

    backdrop-filter:blur(6px);

    display:flex;

    justify-content:center;

    align-items:flex-end;

    visibility:hidden;

    opacity:0;

    transition:.35s;

    z-index:1500;

}

.sheet-overlay.show{

    visibility:visible;

    opacity:1;

}

.bottom-sheet{

    width:100%;
    max-width:430px;

    background:#FFF;

    border-radius:30px 30px 0 0;

    padding:24px;

    padding-bottom:190px;

    transform:translateY(100%);
    transition:.35s;

    box-shadow:
        0 -18px 45px rgba(15,23,42,.15);

    max-height:90vh;

    overflow-y:auto;

    -webkit-overflow-scrolling:touch;

    box-sizing:border-box;

}

.sheet-overlay.show .bottom-sheet{

    transform:translateY(0);

}

.sheet-header{

    position:sticky;

    top:-24px;

    background:#FFF;

    padding-bottom:18px;

    z-index:20;

}

.sheet-header h3{

    color:var(--text);

    font-size:1.15rem;

    font-weight:700;

}

.sheet-header button{

    width:40px;

    height:40px;

    border:none;

    border-radius:12px;

    background:#F3F6FA;

    color:var(--text);

    cursor:pointer;

    transition:.2s;

}

.sheet-header button:hover{

    background:#E8EDF5;

}

/*======================================
FORM
======================================*/

.form-group{

    margin-bottom:18px;

}

.form-group label{

    display:block;

    margin-bottom:8px;

    font-size:.88rem;

    font-weight:600;

    color:var(--text);

}

.form-group input,

.form-group select{

    width:100%;

    height:52px;

    padding:0 16px;

    border:1px solid var(--border);

    border-radius:16px;

    background:#F8FAFC;

    color:var(--text);

    font-size:.95rem;

    outline:none;

    transition:.25s;

}

.form-group input[type=file]{

    height:auto;

    padding:14px;

}

.form-group input::placeholder{

    color:#9CA3AF;

}

.form-group input:focus,

.form-group select:focus{

    border-color:var(--primary);

    background:#FFF;

    box-shadow:
        0 0 0 4px rgba(37,99,235,.10);

}

/*======================================
BUTTON
======================================*/

.save-btn{

    width:100%;

    margin-top:28px;
    margin-bottom:40px;

    padding:18px;

    border:none;

    border-radius:18px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:#FFF;

    font-size:16px;

    font-weight:700;

    box-shadow:
        0 12px 30px rgba(37,99,235,.25);

}

.save-btn:hover{

    transform:translateY(-1px);

    box-shadow:
        0 10px 22px rgba(37,99,235,.22);

}

.save-btn:active{

    transform:scale(.98);

}

/*======================================
TOAST
======================================*/

.toast{

    position:fixed;

    left:50%;

    bottom:92px;

    transform:translateX(-50%) translateY(100px);

    background:#16A34A;

    color:#FFF;

    padding:14px 22px;

    border-radius:999px;

    font-size:.9rem;

    font-weight:500;

    box-shadow:
        0 10px 24px rgba(15,23,42,.18);

    opacity:0;

    transition:.3s;

    z-index:9999;

}

.toast.show{

    opacity:1;

    transform:translateX(-50%) translateY(0);

}
/*======================================
DETAIL PAGE
======================================*/

.detail-header{

    background:linear-gradient(
        135deg,
        #3B82F6,
        #6366F1
    );

    color:#FFF;

    padding:28px 24px;

    border-radius:0 0 28px 28px;

    margin-bottom:20px;

    box-shadow:
        0 12px 30px rgba(59,130,246,.18);

}

.detail-title{

    font-size:1.45rem;

    font-weight:700;

    margin-bottom:6px;

}

.detail-subtitle{

    font-size:.9rem;

    opacity:.9;

}



.pair-name{

    font-size:1.1rem;

    font-weight:700;

    color:var(--text);

}

.pair-mutation{

    color:var(--text-light);

    font-size:.88rem;

}

/*======================================
TIMELINE
======================================*/



.timeline-item{

    display:flex;

    gap:14px;

    align-items:flex-start;

}


.timeline-content h4{

    font-size:.95rem;

    margin-bottom:4px;

    color:var(--text);

}

.timeline-content small{

    color:var(--text-light);

}

/*======================================
MENU BUTTON
======================================*/

.menu-btn{

    width:44px;

    height:44px;

    border:none;

    border-radius:14px;

    background:#FFF;

    border:1px solid var(--border);

    color:var(--text);

    cursor:pointer;

    transition:.2s;

}

.menu-btn:hover{

    background:#F8FAFC;

}

/*======================================
DIALOG
======================================*/

.dialog-overlay{

    position:fixed;

    inset:0;

    background:rgba(15,23,42,.35);

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:1000;

}

.dialog-overlay.show{

    opacity:1;

    visibility:visible;

}

.dialog{

    width:90%;

    max-width:340px;

    background:#FFF;

    border-radius:22px;

    padding:24px;

    box-shadow:
        0 18px 40px rgba(15,23,42,.18);

}

.dialog h3{

    margin-bottom:10px;

    color:var(--text);

}

.dialog p{

    color:var(--text-light);

    line-height:1.6;

    margin-bottom:20px;

}

.dialog-action{

    display:flex;

    gap:10px;

}

.dialog-action button{

    flex:1;

    height:46px;

    border:none;

    border-radius:14px;

    cursor:pointer;

    font-weight:600;

}

.btn-cancel{

    background:#F3F4F6;

    color:var(--text);

}

.btn-delete{

    background:#EF4444;

    color:#FFF;

}



/*======================================
ANIMATION
======================================*/

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(16px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.hero-card,
.stat-card,
.today-card,
.kandang-card,
.pair-card{

    animation:fadeUp .35s ease;

}

/*======================================
RESPONSIVE
======================================*/

@media(max-width:430px){

    #content{

        padding:16px;

    }

    .topbar{

        padding:20px 16px 12px;

    }

    .hero-card{

        padding:22px;

    }

    .detail-header{

        padding:24px 20px;

    }

}
