/* ============================================================
   TRIFOPAY — Design System
   Aesthetic: deep "ink-green" + mint money accent, mobile-first
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Manrope:wght@400;500;600;700&display=swap');

:root{
  --ink:#080C0B; --ink-2:#0E1513; --surface:#131D1A; --surface-2:#18241F;
  --mint:#00E5A0; --mint-dim:#0BBE86; --mint-soft:rgba(0,229,160,.12);
  --text:#EAF2EE; --muted:#8A9A93; --line:rgba(255,255,255,.07);
  --danger:#FF6B6B; --warn:#FFC65C; --radius:18px;
  --shadow:0 20px 50px -20px rgba(0,0,0,.7);
  --font-display:'Sora',sans-serif; --font-body:'Manrope',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-body); background:var(--ink); color:var(--text);
  min-height:100vh; -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(900px 500px at 80% -10%, rgba(0,229,160,.10), transparent 60%),
                   radial-gradient(700px 500px at -10% 110%, rgba(0,229,160,.06), transparent 60%);
}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,.display{font-family:var(--font-display);letter-spacing:-.02em}

/* ---------- App shell (mobile-first, centered on desktop) ---------- */
.shell{max-width:460px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 8px}
.brand{font-family:var(--font-display);font-weight:800;font-size:1.35rem}
.brand .dot{color:var(--mint)}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-weight:700;border:1px solid var(--line)}
.content{flex:1;padding:8px 20px 110px}

/* ---------- Balance hero ---------- */
.balance-card{
  background:linear-gradient(150deg,var(--surface-2),var(--surface));
  border:1px solid var(--line); border-radius:24px; padding:26px 24px;
  box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.balance-card::after{content:"";position:absolute;top:-40%;right:-20%;width:220px;height:220px;
  background:radial-gradient(circle,rgba(0,229,160,.25),transparent 70%);}
.balance-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:600}
.balance-amount{font-family:var(--font-display);font-weight:800;font-size:2.5rem;margin-top:8px;letter-spacing:-.03em}
.balance-amount .cur{font-size:1rem;color:var(--mint);vertical-align:super;font-weight:700;margin-right:4px}
.acct-chip{margin-top:14px;display:inline-flex;align-items:center;gap:8px;background:rgba(0,0,0,.25);
  border:1px solid var(--line);padding:7px 12px;border-radius:30px;font-size:.82rem;color:var(--text)}
.acct-chip .copy{color:var(--mint);font-weight:600;cursor:pointer}

/* ---------- Quick actions ---------- */
.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.action{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 6px;text-align:center;transition:.15s;cursor:pointer}
.action:hover{transform:translateY(-3px);border-color:var(--mint-dim)}
.action .ic{width:42px;height:42px;border-radius:12px;background:var(--mint-soft);color:var(--mint);
  display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:1.2rem}
.action span{font-size:.74rem;color:var(--muted);font-weight:600}

/* ---------- Section + transaction rows ---------- */
.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 4px 12px}
.section-title h3{font-size:1rem}
.section-title a{color:var(--mint);font-size:.82rem;font-weight:600}
.txn{display:flex;align-items:center;gap:14px;padding:14px;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;margin-bottom:10px}
.txn .ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.txn .ic.in{background:var(--mint-soft);color:var(--mint)}
.txn .ic.out{background:rgba(255,107,107,.12);color:var(--danger)}
.txn .meta{flex:1;min-width:0}
.txn .meta b{font-size:.92rem;font-weight:600;display:block}
.txn .meta small{color:var(--muted);font-size:.76rem}
.txn .amt{font-family:var(--font-display);font-weight:700;font-size:.95rem}
.txn .amt.in{color:var(--mint)} .txn .amt.out{color:var(--text)}
.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:.9rem}

/* ---------- Bottom nav ---------- */
.bottomnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:460px;
  background:rgba(8,12,11,.85);backdrop-filter:blur(14px);border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(5,1fr);padding:10px 8px calc(10px + env(safe-area-inset-bottom))}
.navitem{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font-size:.66rem;font-weight:600}
.navitem i{font-size:1.25rem}
.navitem.center{margin-top:-26px}
.navitem.center .fab{width:52px;height:52px;border-radius:50%;background:var(--mint);color:#06120D;
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 10px 24px -6px rgba(0,229,160,.6)}
.navitem.active{color:var(--mint)}

/* ---------- Forms ---------- */
.field{margin-bottom:16px}
.field label{display:block;font-size:.8rem;color:var(--muted);font-weight:600;margin-bottom:7px}
.input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:13px;
  padding:14px 16px;color:var(--text);font-family:var(--font-body);font-size:1rem;transition:.15s}
.input:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}
.input::placeholder{color:#5d6b65}
.btn{display:block;width:100%;text-align:center;text-decoration:none;border:none;border-radius:13px;padding:15px;font-family:var(--font-display);
  font-weight:700;font-size:1rem;cursor:pointer;transition:.15s}
.btn-primary{background:var(--mint);color:#06120D}
.btn-primary:hover{background:var(--mint-dim)}
.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.alert{padding:13px 15px;border-radius:12px;font-size:.88rem;margin-bottom:16px;font-weight:500}
.alert-error{background:rgba(255,107,107,.12);color:#FF9B9B;border:1px solid rgba(255,107,107,.25)}
.alert-ok{background:var(--mint-soft);color:var(--mint);border:1px solid rgba(0,229,160,.25)}

/* ---------- Auth pages ---------- */
.auth{max-width:420px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:30px 24px}
.auth .logo{font-family:var(--font-display);font-weight:800;font-size:2rem;margin-bottom:6px}
.auth .logo .dot{color:var(--mint)}
.auth .tagline{color:var(--muted);margin-bottom:30px;font-size:.95rem}
.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px 24px;box-shadow:var(--shadow)}
.auth-foot{text-align:center;margin-top:22px;color:var(--muted);font-size:.9rem}
.auth-foot a{color:var(--mint);font-weight:600}

/* ---------- Misc ---------- */
.fee-note{background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:12px 14px;
  font-size:.85rem;color:var(--muted);margin-bottom:16px}
.fee-note b{color:var(--text)}
.page-title{font-size:1.4rem;margin:6px 4px 20px}

/* ---------- DESKTOP (sidebar + upana) — simu haiathiriki ---------- */
@media (min-width:980px){
  .shell{max-width:1080px;display:grid;grid-template-columns:220px 1fr;
    grid-template-areas:"nav top" "nav content";align-items:start;min-height:100vh}
  .topbar{grid-area:top;padding:24px 30px 10px}
  .content{grid-area:content;padding:10px 30px 50px;max-width:840px}
  .bottomnav{grid-area:nav;position:sticky;top:0;left:auto;transform:none;width:auto;max-width:none;height:100vh;
    border-top:none;border-right:1px solid var(--line);background:transparent;backdrop-filter:none;
    display:flex;flex-direction:column;gap:6px;padding:26px 14px}
  .bottomnav .navitem{flex-direction:row;justify-content:flex-start;gap:13px;font-size:.95rem;
    padding:12px 14px;border-radius:12px}
  .bottomnav .navitem i{font-size:1.2rem}
  .bottomnav .navitem:hover{background:var(--surface)}
  .bottomnav .navitem.active{color:var(--mint);background:var(--mint-soft)}
  .navitem.center{margin-top:0}
  .navitem.center .fab{width:auto;height:auto;border-radius:0;background:none;color:var(--mint);
    box-shadow:none;font-size:1.2rem;display:inline}
  .navitem.center::after{content:'Tuma';font-weight:600}
}
