:root{
    --bg:#0b0c08;
    --raised:#12130e;
    --line:#292a21;
    --ink:#e8e6df;
    --dim:#8f9088;
    --faint:#626459;
    --dai:#f5ac37;
    --usds:#1aab9b;
    --usdc:#2775ca;
    --danger:#d16a5a;
    --mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color-scheme:dark;
  }
  *{box-sizing:border-box;text-transform:lowercase;}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);}
  body{min-height:100vh;padding:40px max(20px, env(safe-area-inset-right)) max(64px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));font-size:13px;line-height:1.45;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
  .wrap{width:100%;max-width:540px;margin:0 auto;font-family:var(--mono);}
  a{color:var(--dim);text-underline-offset:2px;}
  a:hover{color:var(--ink);}
  :focus-visible{outline:2px solid var(--usds);outline-offset:2px;}

  .coin{width:16px;height:16px;border-radius:50%;margin-right:7px;vertical-align:-3px;flex-shrink:0;object-fit:cover;background:var(--bg);}
  .coin.tiny{width:13px;height:13px;margin-right:5px;vertical-align:-2px;}
  .coin.inline{margin:0 6px;}

  /* header */
  .masthead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px;}
  .title{display:flex;align-items:center;gap:12px;}
  .masthead h1{font-size:17px;font-weight:600;margin:0;white-space:nowrap;}
  .rate{font-size:12px;color:var(--dim);}
  .rate b{color:var(--ink);font-weight:600;}

  .info-btn{
    width:20px;height:20px;padding:0;border-radius:50%;flex-shrink:0;
    display:inline-flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:12px;font-weight:600;line-height:1;
    color:var(--dim);
  }
  .info-btn:hover:not(:disabled){color:var(--ink);}
  .info-btn[aria-expanded="true"], .info-btn[aria-expanded="true"]:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--bg);}

  /* info panel */
  .info{margin:-6px 0 24px;padding:16px;background:var(--raised);border:1px solid var(--line);font-size:11.5px;}
  .info[hidden]{display:none;}
  .info dl{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:9px 20px;}
  .info dt{color:var(--dim);display:flex;align-items:center;}
  .info dd{margin:0;word-break:break-all;}
  #usdcAddrLine{display:contents;}
  #usdcAddrLine[hidden]{display:none;}
  .info-note{margin:14px 0 0;color:var(--dim);}
  @media (max-width:480px){
    .info dl{grid-template-columns:1fr;gap:2px;}
    .info dd{margin-bottom:9px;}
  }

  /* wallet */
  .wallet-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
  .wallet-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
  .wallet-status{color:var(--dim);display:flex;align-items:center;}
  .wallet-status.on{color:var(--ink);}
  .wallet-status.on::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--usds);margin-right:9px;}

  button{
    font-family:var(--mono);
    background:transparent;
    border:1px solid var(--line);
    color:var(--ink);
    padding:9px 16px;
    font-size:13px;
    cursor:pointer;
    border-radius:2px;
    transition:border-color .15s ease, background .15s ease;
  }
  button:hover:not(:disabled){border-color:var(--dim);}
  button:disabled{opacity:0.35;cursor:not-allowed;}
  button.primary{background:var(--usds);color:#08130f;border-color:var(--usds);font-weight:600;padding:13px 16px;}
  button.primary:hover:not(:disabled){background:#22c1af;border-color:#22c1af;}

  .panel{background:var(--raised);border:1px solid var(--line);padding:22px;margin-bottom:22px;}

  /* toggles */
  .direction-toggle{display:flex;border:1px solid var(--line);margin-bottom:10px;}
  .direction-toggle button{flex:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:0;background:transparent;padding:11px 6px;font-size:12px;gap:2px;}
  .direction-toggle button.active{background:var(--ink);color:var(--bg);font-weight:600;}
  .direction-toggle button:not(:last-child){border-right:1px solid var(--line);}
  .direction-toggle button .coin{margin-right:6px;}
  .direction-toggle button .coin.right{margin-right:0;margin-left:6px;}
  .direction-toggle .swap-glyph{color:var(--faint);font-weight:700;margin:0 6px;}
  .direction-toggle button.active .swap-glyph{color:var(--bg);opacity:0.6;}

  .mode-label{display:flex;align-items:center;justify-content:center;gap:2px;font-size:12px;color:var(--dim);margin-bottom:16px;}
  .mode-label.button-reset,
  button.mode-label{
    width:100%;
    background:none;
    border:none;
    padding:0;
    font-family:var(--mono);
    cursor:pointer;
    transition:opacity .15s ease;
  }
  button.mode-label:hover:not(:disabled){opacity:0.7;border-color:transparent;}
  .mode-label .coin{margin-right:6px;}
  .mode-label .coin.right{margin-right:0;margin-left:6px;}
  .mode-label .swap-glyph{color:var(--faint);font-weight:600;margin:0 6px;}
  .swap-hint{display:flex;justify-content:center;color:var(--dim);margin:12px 0 16px;font-size:11px;text-align:center;}

  .sub-toggle{display:flex;gap:8px;margin-bottom:20px;}
  .sub-toggle button{flex:1;padding:8px;font-size:12px;}
  .sub-toggle button.active{color:var(--usds);border-color:var(--usds);font-weight:600;}

  /* form */
  label{display:block;font-size:11px;color:var(--dim);margin-bottom:6px;}
  .field{margin-bottom:16px;}
  input[type=text]{
    width:100%;
    background:var(--bg);
    border:1px solid var(--line);
    color:var(--ink);
    font-family:var(--mono);
    font-size:16px;
    padding:11px 12px;
    border-radius:2px;
  }
  input::placeholder{color:var(--faint);}
  input[type=text]:focus{outline:none;border-color:var(--usds);}
  input[type=checkbox]{accent-color:var(--usds);}

  .balance-hint{font-size:11px;color:var(--dim);margin-top:6px;display:flex;justify-content:space-between;}
  .balance-hint button.max{border:none;background:none;color:var(--usds);padding:0;font-size:11px;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}

  .fee-line{font-size:11.5px;line-height:1.5;color:var(--dim);margin:-8px 0 16px;padding:8px 10px;border:1px solid var(--line);border-radius:2px;display:none;}
  .fee-line.visible{display:block;}
  .fee-line b{color:var(--ink);}
  .fee-line.nonzero{border-color:var(--dai);color:#e8dcc4;}

  .dest-row{display:flex;gap:8px;align-items:flex-start;}
  .dest-row input{flex:1;}
  .checkbox-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--dim);margin-bottom:14px;}
  .checkbox-row input{width:auto;margin:0;}
  /* progress */
  .flow{display:flex;flex-direction:column;margin:20px 0;font-size:12px;}
  .flow-step{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);}
  .flow-step:last-child{border-bottom:none;}
  .flow-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--dim);flex-shrink:0;}
  .flow-step.done .flow-dot{background:var(--usds);border-color:var(--usds);}
  .flow-step.active .flow-dot{background:var(--dai);border-color:var(--dai);animation:pulse 1.2s infinite;}
  .flow-step.error .flow-dot{background:var(--danger);border-color:var(--danger);}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
  @media (prefers-reduced-motion:reduce){.flow-step.active .flow-dot{animation:none;}}
  .flow-label{color:var(--dim);}
  .flow-step.done .flow-label, .flow-step.active .flow-label, .flow-step.error .flow-label{color:var(--ink);}
  .flow-link{margin-left:auto;color:var(--dim);font-size:11px;}
  .flow-link:hover{color:var(--ink);}

  .error-box{background:#241713;border:1px solid var(--danger);color:#e8b8ae;font-size:12px;padding:12px;margin-top:14px;border-radius:2px;word-break:break-word;}

  .go-row{display:flex;gap:10px;}
  .go-row button{flex:1;}

  /* footnote */
  .note{font-size:11.5px;line-height:1.55;color:var(--dim);border-left:2px solid var(--line);padding:2px 0 2px 12px;margin:0;}
  .note b{color:var(--ink);font-weight:600;}

  /* Keep the app font inside the app. Reown mounts next to .wrap, so its modal
     keeps its own font while the shared lowercase aesthetic remains intact. */
  @media (max-width:600px){
    body{padding-top:max(22px, env(safe-area-inset-top));font-size:14px;}
    .masthead{align-items:flex-start;margin-bottom:18px;padding-bottom:15px;}
    .rate{width:100%;}
    .wallet-row{align-items:flex-start;gap:12px;margin-bottom:18px;}
    .wallet-actions{flex-wrap:wrap;}
    .wallet-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    button{min-height:44px;}
    .info-btn{min-height:28px;width:28px;height:28px;}
    .panel{padding:16px;margin-inline:-4px;}
    .direction-toggle{display:grid;grid-template-columns:1fr;}
    .direction-toggle button{min-height:48px;padding:12px 8px;}
    .direction-toggle button:not(:last-child){border-right:0;border-bottom:1px solid var(--line);}
    .sub-toggle{gap:6px;}
    .sub-toggle button{padding:10px 6px;}
    input[type=text]{font-size:16px;min-height:48px;}
    .checkbox-row{align-items:flex-start;line-height:1.45;}
    .checkbox-row input{width:18px;height:18px;flex:0 0 18px;margin-top:1px;}
    .go-row button{min-height:48px;}
  }

  @media (max-width:360px){
    .wallet-row{align-items:stretch;flex-direction:column;}
    .wallet-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;}
    .wallet-actions #connectBtn{grid-column:1 / -1;}
    .wallet-row button{width:100%;}
    .panel{padding:14px 12px;}
  }
