:root{

    --primary:#2563eb;
    --primary-dark:#1d4ed8;
    --secondary:#0f172a;
    --success:#10b981;
    --danger:#ef4444;

    --bg:#f4f7fb;
    --card:#ffffff;
    --text:#1e293b;
    --muted:#64748b;

    --radius:18px;

    --shadow:
    0 10px 30px rgba(0,0,0,.08);

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    background:var(--bg);

    font-family:
    "Segoe UI",
    Arial,
    sans-serif;

    color:var(--text);

    min-height:100vh;

}

a{

    text-decoration:none;

}

img{

    max-width:100%;

    display:block;

}

/* ==========================================
   MODERN SCROLLBAR
========================================== */

/* Chrome, Edge, Opera */
::-webkit-scrollbar{

    width:12px;

    height:12px;

}

::-webkit-scrollbar-track{

    background:#eef2f7;

    border-radius:20px;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
        180deg,
        #3b82f6,
        #2563eb
    );

    border-radius:20px;

    border:3px solid #eef2f7;

    transition:.3s;

}

::-webkit-scrollbar-thumb:hover{

    background:linear-gradient(
        180deg,
        #1d4ed8,
        #1e40af
    );

}

::-webkit-scrollbar-corner{

    background:#eef2f7;

}

/* Firefox */

*{

    scrollbar-width:thin;

    scrollbar-color:#2563eb #eef2f7;

}
/*==================================
NAVBAR
==================================*/

.navbar{

    background:#fff;
    box-shadow:
    0 3px 20px rgba(0,0,0,.05);

    position:sticky;

    top:0;

    z-index:999;

}

.navbar-brand{

    display:flex;

    align-items:center;

    font-weight:700;

    color:#111827;

}

.logo{

    width:48px;

    height:48px;

    object-fit:contain;

    margin-right:12px;

}

.btn-login{

    border-radius:12px;

    padding:10px 18px;

    transition:.25s;

}

.btn-login:hover{

    transform:translateY(-2px);

}

/*==================================
HERO
==================================*/

.hero{

    padding:40px 0 40px;

}

.hero-title{

    font-size:40px;

    font-weight:800;

    color:#111827;

}

.hero-subtitle{

    margin-top:15px;

    color:var(--muted);

    font-size:15px;

    max-width:700px;

    margin-left:auto;

    margin-right:auto;

    line-height:1.8;

}

/*==================================
INFO CARD
==================================*/

.info-card{

    background:#fff;

    border-radius:20px;

    padding:24px;

    box-shadow:var(--shadow);

    display:flex;

    align-items:center;

    transition:.3s;

}

.info-card:hover{

    transform:translateY(-4px);

}

.info-icon{

    width:70px;

    height:70px;

    border-radius:18px;

    background:#dbeafe;

    color:var(--primary);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:30px;

}

.info-number{

    font-size:34px;

    font-weight:700;

    line-height:1;

}

.info-label{

    margin-top:6px;

    color:var(--muted);

    font-size:15px;

}

.brand-text{

    line-height:1.5;

}

.brand-text .fw-bold{

    font-size:1.15rem;

    margin-bottom:0;

}

.brand-text small{

    display:block;

    font-size:.82rem;

    margin-top:-2px;

}
/*==================================
SEARCH
==================================*/

.search-box{

    position:relative;

    margin-top:25px;

}

.search-box i{

    position:absolute;

    left:18px;

    top:50%;

    transform:translateY(-50%);

    color:#94a3b8;

    font-size:18px;

}

.search-box input{

    height:58px;

    border:none;

    border-radius:15px;

    padding-left:52px;

    font-size:16px;

    background:#fff;

    box-shadow:var(--shadow);

}

.search-box input:focus{

    outline:none;

    box-shadow:

    0 0 0 4px rgba(37,99,235,.12);

}

/*==================================
LIBRARY
==================================*/

.library{

    padding:20px 0 70px;

}

.book-grid{

    display:grid;

    grid-template-columns:

    repeat(auto-fill,minmax(270px,1fr));

    gap:28px;

}

/*==================================
CARD BUKU
==================================*/

.book-item{

    display:block;

}

.card-book{

    background:#fff;

    border-radius:20px;

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:.35s;

    display:flex;

    flex-direction:column;

    height:100%;

}

.card-book:hover{

    transform:translateY(-8px);

    box-shadow:
    0 20px 45px rgba(0,0,0,.16);

}


/*==================================
COVER BUKU
==================================*/

.book-cover{

    position:relative;

    height:300px;

    overflow:hidden;

    background:
    linear-gradient(135deg,#1d4ed8,#2563eb,#60a5fa);

    display:flex;

    justify-content:center;

    align-items:center;

    color:#fff;

}

/* Efek punggung buku */

.book-spine{

    position:absolute;

    left:0;

    top:0;

    width:18px;

    height:100%;

    background:
    linear-gradient(to right,#0f172a,#1e3a8a,#1d4ed8);

    box-shadow:
    inset -2px 0 rgba(255,255,255,.25);

}

/* Ornamen */

.book-decoration{

    position:absolute;

    border-radius:50%;

    background:rgba(255,255,255,.08);

}

.decoration-1{

    width:180px;

    height:180px;

    right:-70px;

    top:-70px;

}

.decoration-2{

    width:120px;

    height:120px;

    left:25px;

    bottom:-35px;

}

.book-cover::after{

    content:"";

    position:absolute;

    inset:0;

    background:
    linear-gradient(
    to bottom,
    rgba(255,255,255,.08),
    rgba(0,0,0,.18));

}

.book-cover-content{

    position:relative;

    z-index:5;

    width:100%;

    padding:28px;

    text-align:center;

}

.book-logo{

    width:78px;

    height:78px;

    margin:auto;

    border-radius:50%;

    background:rgba(255,255,255,.16);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:36px;

    margin-bottom:18px;

    backdrop-filter:blur(5px);

}

.school-name{

    font-size:12px;

    letter-spacing:2px;

    font-weight:600;

    opacity:.9;

    margin-bottom:22px;

    text-transform:uppercase;

}

.book-cover-title{

    font-size:20px;

    font-weight:700;

    line-height:1.45;

    margin-bottom:20px;

    text-shadow:
    0 2px 10px rgba(0,0,0,.25);

}

.book-cover-author{

    font-size:15px;

    opacity:.95;

}

.badge-pdf{

    position:absolute;

    top:16px;

    right:16px;

    background:#dc2626;

    color:#fff;

    border-radius:30px;

    padding:6px 12px;

    font-size:12px;

    font-weight:700;

    z-index:10;

}


/*==================================
BODY CARD
==================================*/

.book-body{

    padding:22px;

    display:flex;

    flex-direction:column;

    flex:1;

}

.book-title{

    font-size:17px;

    font-weight:700;

    color:#1e293b;

    line-height:1.5;

    min-height:55px;

}

.book-author{

    margin-top:10px;

    color:#64748b;

    font-size:14px;

}

.book-footer{

    margin-top:auto;

    padding-top:18px;

}

.btn-read{

    width:100%;

    border-radius:12px;

    padding:10px;

    font-weight:600;

    transition:.25s;

}

.btn-read:hover{

    transform:translateY(-2px);

}


/*==================================
EMPTY SEARCH
==================================*/

#emptySearch{

    padding:70px 20px;

    color:#64748b;

}


/*==================================
FOOTER
==================================*/

footer{

    background:#fff;

    border-top:1px solid #e5e7eb;

}

footer small{

    color:#64748b;

}


/*==================================
VIEWER
==================================*/

#flipbookContainer{

    width:100%;

    height:100vh;

    background:#2f2f2f;

}


/*==================================
FLOATING BUTTON
==================================*/

.btn-back{

    position:fixed;

    right:25px;

    bottom:25px;

    width:56px;

    height:56px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

    text-decoration:none;

    z-index:99999;

    box-shadow:
    0 12px 30px rgba(0,0,0,.28);

    transition:.25s;

}

.btn-back:hover{

    background:var(--primary-dark);

    color:#fff;

    transform:scale(1.08);

}


/*==================================
RESPONSIVE
==================================*/

@media(max-width:992px){

.hero-title{

    font-size:34px;

}

.book-grid{

    grid-template-columns:
    repeat(auto-fill,minmax(220px,1fr));

}

}

@media(max-width:768px){

.hero{

    padding:45px 0 25px;

}

.hero-title{

    font-size:30px;

}

.hero-subtitle{

    font-size:15px;

}

.info-card{

    margin-bottom:18px;

}

.book-cover{

    height:260px;

}

.book-cover-title{

    font-size:20px;

}

.book-logo{

    width:65px;

    height:65px;

    font-size:30px;

}

}

@media(max-width:576px){

.hero{
    padding:30px 0 20px;

}
.library{

    padding:15px 0 50px;

}

.book-grid{

    grid-template-columns:repeat(2,1fr);

    gap:14px;

}

.book-cover{

    height:200px;

}

.book-cover-content{

    padding:15px;

}

.book-logo{

    width:48px;

    height:48px;

    font-size:18px;

    margin-bottom:10px;

}

.brand-text .fw-bold{

    font-size:.95rem;

}

.brand-text small{

    font-size:.72rem;

}

.school-name{

    font-size:5px;

    letter-spacing:1px;

    margin-bottom:12px;

}

.book-cover-title{

    font-size:12px;

    line-height:1.35;

    margin-bottom:10px;

}

.book-cover-author{

    font-size:11px;

}

.badge-pdf{

    font-size:10px;

    padding:4px 8px;

}

.book-body{

    padding:15px;

}

.book-title{

    font-size:14px;

    min-height:38px;

    line-height:1.35;

}

.book-author{

    font-size:12px;

    margin:6px 0 15px;

}

.btn-read{

    font-size:13px;

    padding:8px;

}

.hero-title{

    font-size:24px;

}

.hero-subtitle{

    font-size:13px;

}

.info-number{

    font-size:24px;

}

.info-label{

    font-size:13px;

}

.search-box input{

    height:48px;

    font-size:14px;

}

.search-box{
    position:relative;
    margin-top:15px;

}

.btn-login{
    border-radius:12px;
    font-weight: unset;
    padding:6px 12px;
    transition:.25s;

}

.btn-back{

    width:35px;

    height:35px;

    right:10px;

    bottom:50px;

    font-size:18px;

}

}