*{box-sizing:border-box}
:root{--blue:#1f4e79;--sky:#e8f1fa;--line:#d5e2ef;--ink:#1b2a38;--muted:#5f7387;--accent:#e4572e}
body{margin:0;font-family:-apple-system,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;background:linear-gradient(180deg,#dbe8f5,#f6f9fc 240px);color:var(--ink)}
.app{max-width:480px;margin:0 auto;padding:16px 14px 32px}
.top{display:flex;gap:12px;align-items:center;margin:8px 4px 16px}
.logo{width:44px;height:44px;border-radius:12px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:700}
h1{font-size:20px;margin:0}
.top p{margin:2px 0 0;color:var(--muted);font-size:13px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}
h2{font-size:13px;color:var(--muted);margin:0 0 10px;font-weight:600;letter-spacing:.05em}
.dir{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dir-btn,.cat{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:10px;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.dir-btn{font-weight:700}
.dir-btn small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}
.dir-btn[aria-pressed=true],.cat[aria-pressed=true]{border-color:var(--blue);background:var(--sky)}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cat{text-align:center;padding:8px 2px;font-size:13px}
.cat b{display:block;font-size:20px;font-weight:400}
.pair{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}
select,input{font:inherit;width:100%;padding:10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.swap{width:40px;height:40px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:18px;cursor:pointer}
.rate{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:14px}
.rate input{width:90px}
.num{display:block;margin-top:12px;font-size:13px;color:var(--muted)}
.num input{margin-top:4px;font-size:22px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chips button{border:none;background:var(--sky);color:var(--blue);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.result{background:var(--blue);color:#fff;border:none}
.out{font-size:26px;font-weight:700;word-break:break-all}
.formula{font-family:ui-monospace,Menlo,monospace;font-size:13px;opacity:.85;margin-top:6px}
.tip{font-size:13px;opacity:.9;margin:10px 0 0;line-height:1.5}
.tip:empty{display:none}
footer{text-align:center;font-size:12px;color:var(--muted);margin-top:16px}
[hidden]{display:none!important}
