:root{--primary:#014D40;--accent:#00A389;--success:#2ECC71;--danger:#E74C3C;--bg:#F7F9F8;--border:#E5E9E8;--text:#0F2620;--text-muted:#5B6E68;}
*{box-sizing:border-box;}
body{margin:0;font-family:'Inter',-apple-system,'Helvetica Neue',Arial,sans-serif;background:var(--bg);color:var(--text);}
a{color:inherit;text-decoration:none;}

.app-shell{display:flex;min-height:100vh;}
.sidebar{width:220px;background:var(--primary);color:#fff;display:flex;flex-direction:column;padding:24px 0;flex-shrink:0;}
.sidebar .brand{font-size:20px;font-weight:700;padding:0 24px 24px;}
.sidebar nav a{display:flex;align-items:center;gap:10px;padding:12px 24px;color:rgba(255,255,255,.75);font-weight:500;font-size:15px;}
.sidebar nav a.active,.sidebar nav a:hover{color:#fff;background:rgba(255,255,255,.08);}

.main{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:16px 32px;background:#fff;border-bottom:1px solid var(--border);}
.avatar{width:36px;height:36px;border-radius:999px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;}
.content{padding:32px;max-width:960px;width:100%;margin:0 auto;}

.card{background:#fff;border-radius:16px;box-shadow:0 1px 3px rgba(1,77,64,.08);padding:24px;border:1px solid var(--border);}
.card + .card{margin-top:20px;}

.balance-row{display:flex;gap:16px;flex-wrap:wrap;}
.balance-card{flex:1;min-width:220px;display:flex;align-items:center;gap:16px;}
.asset-badge{width:48px;height:48px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;flex-shrink:0;}
.asset-badge.sm{width:32px;height:32px;font-size:12px;}
.asset-badge.USDT{background:#26A17B;}
.asset-badge.USDC{background:#2775CA;}
.asset-badge.cNGN{background:#7C3AED;}
.balance-amount{font-size:22px;font-weight:700;}
.balance-code{color:var(--text-muted);font-size:13px;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:999px;font-weight:600;font-size:14px;border:none;cursor:pointer;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:#008a73;}
.btn-outline{background:#fff;border:1px solid var(--border);color:var(--text);}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);}

.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-muted);}
.form-control{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:10px;font-size:15px;font-family:inherit;}
.form-control:focus{outline:none;border-color:var(--accent);}

.tx-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);}
.tx-row:last-child{border-bottom:none;}
.tx-main{flex:1;min-width:0;}
.tx-counterparty{font-weight:600;font-size:14px;}
.tx-meta{font-size:12px;color:var(--text-muted);}
.tx-amount{font-weight:700;font-size:15px;}
.tx-amount.received{color:var(--success);}
.tx-amount.sent{color:var(--text);}

.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#EAF7F1;color:#1E8449;}
.badge.pending{background:#FEF5E7;color:#B9770E;}
.badge.failed,.badge.reversed{background:#FDEDEC;color:#C0392B;}

.alert{padding:12px 16px;border-radius:10px;margin-bottom:20px;font-size:14px;}
.alert-success{background:#EAF7F1;color:#1E8449;}
.alert-error{background:#FDEDEC;color:#C0392B;}

.guest-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--primary);}
.guest-card{background:#fff;border-radius:20px;padding:40px;width:100%;max-width:400px;box-shadow:0 10px 40px rgba(0,0,0,.2);}
.guest-card h1{font-size:22px;margin:0 0 4px;color:var(--primary);}
.guest-card .sub{color:var(--text-muted);font-size:14px;margin-bottom:24px;}
.guest-card .switch{text-align:center;margin-top:16px;font-size:14px;color:var(--text-muted);}
.guest-card .switch a{color:var(--accent);font-weight:600;}

.field-error{color:var(--danger);font-size:12px;margin-top:4px;}
.empty-state{text-align:center;color:var(--text-muted);padding:40px 0;font-size:14px;}
.text-muted{color:var(--text-muted);}
h1.page-title{font-size:24px;margin:0 0 20px;}
