
:root{
 --primary:#2563eb;
 --bg:#f8fafc;
 --card:#ffffff;
 --text:#0f172a;
}

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

body{
 font-family:system-ui,-apple-system,Segoe UI,Roboto;
 background:var(--bg);
 color:var(--text);
}

.container{
 padding:12px;
 max-width:1100px;
 margin:auto;
}

.header{
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-bottom:12px;
}

.header h2{font-size:20px}

.balance-card{
 background:linear-gradient(135deg,#2563eb,#1e40af);
 color:#fff;
 border-radius:14px;
 padding:20px;
 margin-bottom:15px;
}

.balance-card span{
 font-size:14px;
 opacity:.9;
}

.balance-card h1{
 font-size:32px;
 margin-top:8px;
}

.actions{
 display:grid;
 grid-template-columns:repeat(2,1fr);
 gap:10px;
 margin-bottom:15px;
}

.btn{
 padding:12px;
 border-radius:12px;
 text-align:center;
 text-decoration:none;
 background:var(--primary);
 color:#fff;
 font-size:15px;
}

.card{
 background:var(--card);
 border-radius:14px;
 padding:14px;
 box-shadow:0 8px 20px rgba(0,0,0,.06);
}

.table{
 width:100%;
}

.row{
 display:grid;
 grid-template-columns:1fr 70px 80px;
 padding:10px 0;
 border-bottom:1px solid #e5e7eb;
 font-size:14px;
}

.row:last-child{border:none}

.row small{opacity:.6}

@media(min-width:768px){
 .actions{grid-template-columns:repeat(4,1fr)}
 .row{grid-template-columns:2fr 1fr 1fr}
}

/* ---------- FORM INPUT FIX ---------- */

label{
    display:block;
    font-size:14px;
    margin:8px 0 6px;
    font-weight:600;
}

input, select, textarea{
    width:100%;
    padding:14px 12px;
    font-size:16px;            /* mobile zoom fix */
    border-radius:12px;
    border:1.5px solid #cbd5e1;
    background:#fff;
    outline:none;
    transition:0.2s;
}

input::placeholder{
    color:#94a3b8;
}

input:focus, select:focus, textarea:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

button.btn{
    border:none;
    cursor:pointer;
    margin-top:15px;
    font-size:16px;
}

/* Prevent iOS zoom */
@media(max-width:768px){
    input, select, textarea{
        font-size:16px;
    }
}


/* ---------- BOTTOM NAVIGATION ---------- */

.bottom-nav{
    position:fixed;
    bottom:0;
    left:0;
    width:100%;
    height:64px;
    background:#ffffff;
    border-top:1px solid #e5e7eb;
    display:flex;
    justify-content:space-around;
    align-items:center;
    z-index:1000;
}

.bottom-nav a{
    flex:1;
    text-align:center;
    text-decoration:none;
    color:#64748b;
    font-size:12px;
}

.bottom-nav a span{
    display:block;
    font-size:22px;
    margin-bottom:2px;
}

.bottom-nav a.active{
    color:#2563eb;
    font-weight:600;
}

/* page content bottom space */
.page-padding{
    padding-bottom:80px;
}

/* hide bottom nav on desktop */
@media(min-width:768px){
    .bottom-nav{
        display:none;
    }
}


/* ---------- TRANSACTION TYPE EFFECT ---------- */

.type-in{
    color:#16a34a;
    font-weight:700;
}

.type-out{
    color:#dc2626;
    font-weight:700;
}

/* Amount highlight */
.amount-in{
    color:#16a34a;
    font-weight:700;
}

.amount-out{
    color:#dc2626;
    font-weight:700;
}

/* Row background effect */
.row.in{
    background:#f0fdf4;
}

.row.out{
    background:#fef2f2;
}

/* ---------- ANIMATION ---------- */

.row{
    animation:slideFade .35s ease;
}

@keyframes slideFade{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}


/* ---------- FILTER BAR ---------- */

.filter-bar{
    display:flex;
    gap:10px;
    margin-bottom:15px;
}

.filter-btn{
    flex:1;
    padding:10px;
    border-radius:10px;
    border:none;
    font-size:14px;
    background:#e5e7eb;
    cursor:pointer;
}

.filter-btn.active{
    background:#2563eb;
    color:#fff;
}

.filter-btn.in{color:#16a34a}
.filter-btn.out{color:#dc2626}


.top-menu a,
.bottom-nav a{
    font-weight: 600;
    padding: 8px 12px;
    color: #555;
    text-decoration: none;
}

.top-menu a.active,
.bottom-nav a.active {
    color: #2563eb;
    border-bottom: 2px solid #2563eb;
}

.top-menu a:hover,
.bottom-nav a:hover {
    color: #0f4ecd;
}



