/* Brand accent is set at runtime from BRAND_ACCENT in .env */
:root{
  --bg:#F8FAFC; --surface:#FFFFFF; --ink:#0E2A3B; --muted:#5B6B76; --line:#E1E8EE;
  --accent:#2563EB; --accent-ink:#FFFFFF; --pos:#1D4ED8; --neg:#B4442F; --soft:#E8F0FE;
  /* light blue header bars */
  --head:#E6F1FB; --head-ink:#123A5C; --head-line:#CBE0F4; --head-muted:#4A6A88; --th:#F2F8FD;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0F1A21; --surface:#16242D; --ink:#E6EEF2; --muted:#93A4AE; --line:#253742;
    --accent-ink:#FFFFFF; --pos:#7DB3FF; --neg:#F08A74; --soft:#17283F;
    --head:#16293A; --head-ink:#D6E8F8; --head-line:#24405A; --head-muted:#8FB0CC; --th:#132331;
    color-scheme: dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0px)}
.num{font-variant-numeric:tabular-nums}
button,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.hidden{display:none!important}

.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-box{width:100%;max-width:380px}
.brandmark{display:flex;align-items:center;gap:10px;font-weight:800;font-size:22px;letter-spacing:-.02em}
.logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:17px}
.login h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;margin:36px 0 6px}
.login p.sub{color:var(--muted);margin:0 0 28px}
label{display:block;font-size:14px;font-weight:600;margin:0 0 6px}
.field{margin-bottom:16px}
input[type=email],input[type=password]{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--soft)}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:10px;padding:13px 18px;font-weight:700;cursor:pointer;background:var(--accent);color:var(--accent-ink)}
.btn:disabled{opacity:.6;cursor:default}
.btn.block{width:100%}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);padding:9px 14px}
.err{color:var(--neg);font-size:14px;min-height:21px;margin:4px 0 10px}
.hint{margin-top:22px;font-size:13px;color:var(--muted)}

header.top{position:sticky;top:0;z-index:5;background:var(--head);border-bottom:1px solid var(--head-line);padding-top:env(safe-area-inset-top,0px)}
.top-in{max-width:1040px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.who{display:flex;align-items:center;gap:12px;font-size:14px}
.who .name{font-weight:600}
.who .co{color:var(--muted)}
@media (max-width:560px){.who .text{display:none}}
main{max-width:1040px;margin:0 auto;padding:28px 20px 60px}

.hero{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;padding-bottom:26px}
.hero .lbl{color:var(--muted);font-weight:600;font-size:15px}
.hero .big{font-size:clamp(40px,8vw,68px);font-weight:800;letter-spacing:-.035em;line-height:1;margin-top:8px}
.hero .big .cur{font-size:.42em;font-weight:700;color:var(--muted);margin-left:8px;letter-spacing:0}
.hero .note{color:var(--muted);font-size:13px;margin-top:10px}
@media (max-width:640px){.hero{grid-template-columns:1fr}}

.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:20px;align-items:start}
@media (max-width:820px){.grid{grid-template-columns:1fr}}
section.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.panel h2{font-size:16px;margin:0;padding:14px 18px;background:var(--head);color:var(--head-ink);border-bottom:1px solid var(--head-line);display:flex;justify-content:space-between;align-items:center;gap:12px}
.panel h2 span{font-weight:500;color:var(--head-muted);font-size:14px}

.bal{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 18px;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer}
.bal:last-child{border-bottom:0}
.bal[aria-pressed="true"]{background:var(--soft);box-shadow:inset 3px 0 0 var(--accent)}
.flag{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--bg);flex:none}
.bal .meta{flex:1;min-width:0}
.bal .code{font-weight:700}
.bal .desc{font-size:13px;color:var(--muted)}
.bal .amt{font-weight:700;font-size:17px}

.stack{display:grid;gap:20px;align-content:start}
.details{font-size:14px}
.details-body{padding:16px 18px}
.details:empty{display:none}
.details h3{font-size:14px;margin:0 0 10px}
.details dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.details dt{color:var(--muted)}
.details dd{margin:0;font-weight:600;word-break:break-all}
.details p{color:var(--muted);font-size:13px;margin:10px 0 0}

.tx{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line)}
.tx:last-child{border-bottom:0}
.tx .ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--bg);font-weight:800}
.tx .meta{flex:1;min-width:0}
.tx .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx .d{font-size:13px;color:var(--muted)}
.tx .a{font-weight:700;white-space:nowrap}
.tx .a.in{color:var(--pos)}
.empty{padding:28px 18px;color:var(--muted);text-align:center}
.loading{opacity:.5;pointer-events:none}
footer{max-width:1040px;margin:0 auto;padding:0 20px 30px;color:var(--muted);font-size:12px}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
.pill{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:700;vertical-align:2px}
.qr{display:flex;justify-content:center;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;margin:4px 0 12px}
.qr img{display:block;image-rendering:pixelated}
.key{display:inline-block;margin-top:6px;font-size:14px;letter-spacing:.06em;background:var(--soft);padding:4px 8px;border-radius:6px;word-break:break-all}
#code{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:22px;letter-spacing:.3em;text-align:center}
#code:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--soft)}
.linkbtn{background:none;border:0;color:var(--accent);font-weight:700;cursor:pointer;padding:0;font:inherit}

/* ----- Tabs (client) ----- */
.tabs{display:flex;gap:4px}
.tab{background:none;border:0;padding:8px 12px;border-radius:8px;font-weight:600;color:var(--muted);cursor:pointer}
.tab[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
@media (max-width:560px){.top-in{flex-wrap:wrap}.tabs{order:3;width:100%}.tab{flex:1}}

/* ----- Rates ----- */
.rates-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start}
@media (max-width:860px){.rates-grid{grid-template-columns:1fr}}
.conv-body{padding:18px}
.conv-body label{margin:0 0 8px}
.amt-row{display:flex;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.amt-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.amt-row input{flex:1;min-width:0;border:0;padding:14px 16px;font-size:26px;font-weight:800;letter-spacing:-.02em;background:transparent}
.amt-row input:focus{outline:none;box-shadow:none}
.amt-row select{border:0;border-left:1px solid var(--line);padding:0 14px;font:inherit;font-weight:700;background:var(--bg);color:inherit;cursor:pointer}
.swap-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}
.rate-line{font-size:14px;color:var(--muted)}
.rate-line b{color:var(--ink)}
.swap{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:18px;cursor:pointer;color:var(--accent);flex:none}
.swap:hover{background:var(--soft)}
.fine{font-size:12px;color:var(--muted);margin:14px 0 0}
.pad-x{padding:0 18px 16px}
.inline-sel select{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit;font-size:14px;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
table.sheet{width:100%;border-collapse:collapse;font-size:15px}
table.sheet th,table.sheet td{padding:12px 18px;border-bottom:1px solid var(--line);text-align:left}
table.sheet th{font-size:13px;color:var(--head-muted);font-weight:600;background:var(--th)}
table.sheet .amt{text-align:right}
table.sheet tr:last-child td{border-bottom:0}
table.sheet td .c{display:flex;align-items:center;gap:10px;font-weight:700}
table.sheet td .c small{font-weight:500;color:var(--muted)}
.scroll{overflow-x:auto}
@media (max-width:560px){
  table.sheet td .c small,table.sheet td .c br{display:none}
  table.sheet th,table.sheet td{padding:10px 12px}
  table.sheet td.amt{white-space:nowrap;font-size:14px}
  table.sheet .flag{width:30px;height:30px;font-size:16px}
}

/* Light blue header bar: tabs and buttons sit on it */
header.top .tab[aria-current="page"]{background:var(--surface);color:var(--head-ink);box-shadow:inset 0 0 0 1px var(--head-line)}
header.top .tab{color:var(--head-muted)}
header.top .btn.ghost{background:var(--surface);border-color:var(--head-line)}
header.top .who .co{color:var(--head-muted)}
.panel h2 .btn.ghost{background:var(--surface);border-color:var(--head-line)}
section.panel{border-color:var(--head-line)}

/* ----- Send money ----- */
.pay-form{padding:18px;display:grid;gap:6px}
.pay-form label{margin:8px 0 0}
.pay-form select,.pay-form input:not(.amt-row input){width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;color:inherit}
.pay-form select:focus,.pay-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--soft)}
.pay-form .amt-row input{width:auto}
.inline-row{display:flex;gap:8px}
.inline-row select{flex:1}
.inline-row .btn{white-space:nowrap}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:480px){.two{grid-template-columns:1fr}}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:8px}
.seg button{flex:1;padding:9px;border:0;background:var(--surface);font-weight:700;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.cur-tag{display:flex;align-items:center;padding:0 16px;font-weight:800;background:var(--bg);border-left:1px solid var(--line)}
.quote{font-size:14px;color:var(--muted);min-height:20px}
.quote b{color:var(--ink)}
.quote .big{font-size:18px;color:var(--ink);font-weight:800}
.stack{display:grid;gap:20px;align-content:start}
.pay-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:0}
.pay-row .t{font-weight:600}
.pay-row .d{font-size:13px;color:var(--muted)}
.pay-row .r{text-align:right;white-space:nowrap}
.status-pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;margin-top:2px}
.status-pill.pending{background:#FFF3D6;color:#8A5A00}
.status-pill.paid{background:var(--soft);color:var(--accent)}
.status-pill.rejected,.status-pill.cancelled{background:#F6E1DC;color:var(--neg)}
.linkbtn.danger{color:var(--neg)}
.panel h2 .linkbtn{font-size:14px}
.ok-msg{color:var(--pos);font-weight:600}
.tab{white-space:nowrap}
@media (max-width:560px){.tab{padding:8px 6px;font-size:15px}}
