body {
    background: #f5f6fa;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    padding-bottom: 80px;
    overflow-x: hidden;
}

@keyframes pageEnterDefault {
    from { opacity: 0.9; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

body {animation: pageEnterDefault 0.2s ease-out;}
body.page-exit-forward {transform: translateX(-100%); transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);}
body.page-exit-backward {transform: translateX(100%); transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);}
.container, .container-fluid {background: transparent !important;}
.btn, .button {transform: translateZ(0); transition: transform 0.15s ease, box-shadow 0.15s ease;}
.btn:active {/* transform: scale(1.05); box-shadow: 0 8px 20px rgba(0,0,0,0.25); */}
.button:active {/* transform: scale(1.05); box-shadow: 0 8px 20px rgba(0,0,0,0.25); */}
.btn .ripple { position: absolute; border-radius: 50%; background: rgba(255,255,255,0.5); transform: scale(0); animation: rippleExpand 0.5s ease-out; pointer-events: none;}
.button .ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    transform: scale(0);
    animation: rippleExpand 0.5s ease-out;
    pointer-events: none;
}

@keyframes rippleExpand {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

.btn-primary { background: linear-gradient(135deg,#0d6efd 0%,#0a58ca 100%); border:none; }
.btn-success { background: linear-gradient(135deg,#198754 0%,#146c43 100%); border:none; }
.btn-danger { background: linear-gradient(135deg,#dc3545 0%,#b02a37 100%); border:none; }
.btn-warning { background: linear-gradient(135deg,#ffc107 0%,#e0a800 100%); border:none; }
.btn-info { background: linear-gradient(135deg,#0dcaf0 0%,#0aa2c0 100%); border:none; }
.mobile-bottom-nav {
    position: fixed;
    bottom:0;
    left:0;
    width:100%;
    background:#ffffff;
    display:flex;
    justify-content:space-around;
    padding:10px 0;
    box-shadow:0 -3px 15px rgba(0,0,0,0.1);
    z-index:9999;
}
.mobile-bottom-nav a {
    text-align:center;
    font-size:12px;
    color:#444;
    text-decoration:none;
    padding:5px 15px;
    border-radius:12px;
    transition:transform 0.15s ease;
}
.mobile-bottom-nav a:active { transform:scale(0.9); }

.mobile-bottom-nav a.active { color:#0d6efd; background:rgba(13,110,253,0.1);}
.mobile-bottom-nav i {display:block; font-size:20px; margin-bottom:3px;}
.fab-button {
    position:fixed;
    bottom:90px;
    right:20px;
    width:60px;
    height:60px;
    background:linear-gradient(135deg,#0d6efd 0%,#0a58ca 100%);
    color:#fff;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    box-shadow:0 6px 20px rgba(13,110,253,0.4);
    z-index:10000;
    font-size:22px;
    transition:transform 0.2s ease;
}
.fab-button:active { transform:scale(1.1); }
html { scroll-behavior: smooth; }

@media (min-width: 769px) {
    .mobile-bottom-nav,
    .fab-button {
        display:none !important;
    }
}