/* ...existing code... */
/* Responsive home screen layout */
.home-main, .hero, .features, .stats, .testimonials, footer {
    max-width: 480px;
    margin: 0 auto;
    padding: 0 12px;
    box-sizing: border-box;
}
header, .hero, .features, .stats, .testimonials, footer {
    width: 100%;
    box-sizing: border-box;
}
/* Buttons */
/* Hero CTA Buttons - improved for mobile */
.hero-cta {
    display: flex;
    gap: 16px;
    margin-top: 32px;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.hero-cta .btn-primary, .hero-cta .btn-ghost {
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,102,214,0.12);
    transition: all 0.3s ease;
    min-width: 160px;
    text-align: center;
}
.hero-cta .btn-primary {
    background: linear-gradient(90deg, #6366f1 0%, #06b6d4 100%);
    color: #fff;
    border: none;
}
.hero-cta .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(0,102,214,0.18);
}
.hero-cta .btn-ghost {
    background: #fff;
    color: #0066d6;
    border: 2px solid #e2e8f0;
}
.hero-cta .btn-ghost:hover {
    border-color: #0066d6;
    background: #f8fafc;
}
@media (max-width: 600px) {
    .hero-cta {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
    .hero-cta .btn-primary, .hero-cta .btn-ghost {
        min-width: 0;
        width: 100%;
        font-size: 15px;
        padding: 14px 0;
    }
}
.card, .panel {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(102,126,234,0.07);
    padding: 18px 14px;
    margin-bottom: 16px;
}
/* Footer (override for mobile) */
footer {
    padding-bottom: env(safe-area-inset-bottom, 18px);
}
/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: inherit;
    font-weight: 800;
    color: #1e293b;
    margin-top: 0;
}
p, small, label {
    font-family: inherit;
    color: #334155;
}
/* Responsive adjustments */
@media (max-width: 600px) {
    .home-main, .hero, .features, .stats, .testimonials, footer {
        max-width: 100vw;
        padding: 0 4vw;
    }
    button, .btn {
        font-size: 0.95rem;
        padding: 10px 14px;
    }
    input, select {
        font-size: 0.95rem;
        padding: 8px 10px;
    }
    .card, .panel {
        padding: 14px 8px;
    }
    h1 {
        font-size: 1.5rem;
    }
    h2 {
        font-size: 1.2rem;
    }
}
@media (max-width: 400px) {
    .home-main, .hero, .features, .stats, .testimonials, footer {
        padding: 0 2vw;
    }
    button, .btn {
        font-size: 0.9rem;
        padding: 8px 10px;
    }
    input, select {
        font-size: 0.9rem;
        padding: 6px 8px;
    }
    h1 {
        font-size: 1.2rem;
    }
    h2 {
        font-size: 1rem;
    }
}
:root{
    --bg:#f4f6fb;
    --card:#ffffff;
    --primary:#0066d6;
    --primary-700:#0052a3;
    --accent:#00a896;
    --muted:#6b7280;
    --danger:#b00020;
    --shadow: 0 8px 28px rgba(16,24,40,0.06);
    --max-width:1100px;
    --radius:12px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    background: linear-gradient(180deg, #f7f9ff 0%, var(--bg) 100%);
    color: #0f172a;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    /* Touch-friendly mobile enhancements */
    -webkit-tap-highlight-color: rgba(0,102,214,0.1);
    touch-action: manipulation;
}

.topbar{
    background: linear-gradient(90deg, var(--primary), var(--primary-700));
    color:#fff;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.topbar h2{font-size:20px;letter-spacing:.2px}
.topbar .logout, .topbar a.logout{background:rgba(255,255,255,0.12);color:#fff;padding:8px 12px;border-radius:8px;text-decoration:none;border:1px solid rgba(255,255,255,0.06)}
.topbar .logout:hover, .topbar a.logout:hover{background:rgba(255,255,255,0.18)}

.container{max-width:var(--max-width);margin:32px auto;padding:20px}

.grid{display:grid;grid-template-columns:1fr 340px;gap:20px}

.balance-card{background:var(--card);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.balance-card p{color:var(--muted);font-size:14px}
.balance-card h1{font-size:28px;color:var(--primary);margin:6px 0}
.balance-card .small{font-size:13px;color:var(--muted)}

.btn{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:10px 14px;border:0;cursor:pointer;
    /* Touch-friendly */
    min-height:44px;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-700)}
.btn-ghost{background:transparent;border:1px solid #e6eefc;color:var(--primary)}
.danger{background:var(--danger);color:#fff}

.actions{display:flex;gap:12px;margin:20px 0}
.actions button{flex:1;background:linear-gradient(180deg,#fff,#fbfdff);padding:12px;border-radius:10px;border:1px solid #eef3ff;cursor:pointer;box-shadow:0 4px 14px rgba(16,24,40,0.03)}
.actions button:hover{transform:translateY(-2px)}

.transactions{background:var(--card);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow)}
.transactions h3{margin-bottom:12px}
.transactions ul{list-style:none}
.transactions li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}
.transactions li span{color:var(--muted)}
.transactions li strong{font-weight:700}
.amount-positive{color:#059669}
.amount-negative{color:#ef4444}

/* Auth forms */
.auth{max-width:440px;margin:48px auto;padding:24px;background:var(--card);border-radius:12px;box-shadow:var(--shadow)}
.auth h2{margin-bottom:10px}
.auth form{display:flex;flex-direction:column;gap:12px}
.auth input{padding:12px;border-radius:8px;border:1px solid #e6eefc;
    /* Touch-friendly input */
    min-height:44px;
    font-size:16px;
}
.auth button{padding:12px;border-radius:8px;border:0;min-height:48px;font-size:16px}
.error{color:var(--danger)}
.success{color:#0a8a00}

/* PayPal-inspired login layout */
.pp-auth{display:grid;grid-template-columns:1fr 420px;gap:28px;align-items:stretch;max-width:980px;margin:48px auto}
.pp-auth .promo{background:linear-gradient(180deg,var(--primary),var(--primary-700));color:#fff;padding:36px;border-radius:12px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.pp-auth .promo .pp-brand{font-weight:800;font-size:28px;letter-spacing:.6px}
.pp-auth .promo h3{margin-top:6px;font-size:20px}
.pp-auth .promo p{opacity:.95;max-width:380px}
.pp-card{background:var(--card);padding:26px;border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.pp-card h2{margin:0 0 6px 0}
.pp-form input{width:100%;padding:12px;border:1px solid #e6eefc;border-radius:8px;
    /* Touch-friendly */
    min-height:44px;
    font-size:16px;
}
.input-group{position:relative;display:flex;align-items:center}
.input-group .input-icon{position:absolute;left:12px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--muted);opacity:0.9}
.input-group input{padding-left:44px}
.input-helper{font-size:12px;color:var(--muted);margin-top:6px}
.pp-form .btn-primary{padding:12px 16px;background:linear-gradient(180deg,#0062d6,#004fa6);border-radius:8px}
.pp-form .btn-primary:hover{background:linear-gradient(180deg,#0052a3,#004080)}

/* visuals and accessibility helpers */
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

@media (max-width:900px){
    .pp-auth{grid-template-columns:1fr;padding:12px;grid-auto-rows:auto}
    .pp-auth .promo{order:2;padding:20px}
    .pp-card{order:1}
}

/* Admin user table */
.users{max-width:100%;overflow:auto;background:var(--card);padding:18px;border-radius:12px;box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:12px;border-bottom:1px solid #f1f5f9;text-align:left}
th{background:#fbfdff;color:var(--muted);font-weight:600}
.actions form{display:inline}

/* Small utilities */
.muted{color:var(--muted)}
pre{background:#f8fafc;padding:10px;border-radius:8px;overflow:auto}

/* Responsive - Enhanced for ALL mobile devices */
@media (max-width:900px){
    .grid{grid-template-columns:1fr}
    .topbar{padding:12px}
    .container{padding:16px}
}

@media (max-width:768px){
    body{font-size:16px}
    .topbar h2{font-size:18px}
    .balance-card h1{font-size:32px}
    .btn{padding:12px 16px;font-size:16px}
    .actions{flex-direction:column}
    .actions button{width:100%;padding:14px}
    .auth{padding:20px;margin:24px 12px}
}

@media (max-width:480px){
    .container{padding:12px;margin:16px auto}
    .topbar{padding:10px 12px}
    .topbar h2{font-size:16px}
    .balance-card{padding:20px}
    .balance-card h1{font-size:36px}
    .btn{font-size:16px;padding:14px 18px}
    .transactions{padding:14px}
    .transactions li{flex-direction:column;align-items:flex-start;gap:4px}
    table{font-size:14px}
    th,td{padding:8px}
}

@media (max-width:375px){
    .topbar h2{font-size:15px}
    .balance-card h1{font-size:32px}
    .btn{font-size:15px;padding:12px 16px}
}

@media (prefers-reduced-motion: no-preference){
    .actions button, .btn{transition:all .16s ease}
}

/* small visual tweaks for links/buttons inside tables */
table a{color:var(--primary);text-decoration:none}
table a:hover{text-decoration:underline}

/* Password toggle button */
.pwd-toggle{
    position:absolute;right:10px;top:50%;transform:translateY(-50%);
    display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--primary);cursor:pointer;font-weight:600
}
.pwd-toggle:hover{background:rgba(0,102,214,0.06);border-color:rgba(0,102,214,0.08)}

.input-group input{padding-right:44px}

/* Responsive dashboard enhancements */
.responsive-card {
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    padding: 24px 12px;
    box-sizing: border-box;
}
@media (max-width: 900px) {
    .responsive-card {
        max-width: 100vw;
        padding: 0 4vw;
    }
}
@media (max-width: 600px) {
    .responsive-card {
        padding: 0 2vw;
    }
    .responsive-actions {
        flex-direction: column;
        gap: 10px;
        align-items: stretch;
    }
    .responsive-service {
        width: 100%;
        margin-bottom: 12px;
        display: block;
    }
}
@media (max-width: 400px) {
    .responsive-card {
        padding: 0 1vw;
    }
}

/* Modal fix for dashboard */
.modal {
  z-index: 99999 !important;
  display: none;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,0.5);
}

.modal[style*="display: flex"] {
  display: flex !important;
}

/* End modal fix */


