:root{
  --bg:#f2f3f6; --card:#ffffff; --ink:#15171a; --dim:#6f7278; --line:#e6e7ec;
  --acc:#15171a; --up:#1a9e5c; --down:#d94a3d; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,"PingFang TC","Noto Sans TC",system-ui,sans-serif;}
body{padding-bottom:calc(74px + env(safe-area-inset-bottom));}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;
  padding:14px 16px 10px;background:var(--bg);border-bottom:1px solid var(--line)}
.top .avatar{width:28px;height:28px;border-radius:8px}
.brand{font-weight:700;font-size:16px;letter-spacing:.02em;flex:1}
.ghost{border:1px solid var(--line);background:var(--card);border-radius:10px;
  width:34px;height:34px;font-size:15px;color:var(--dim)}
main{padding:12px 14px 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
.card h2{font-size:13px;margin:0 0 10px;color:var(--dim);font-weight:600;letter-spacing:.04em}
.row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;
  border-bottom:1px solid var(--line);font-size:14px}
.row:last-child{border-bottom:0}
.row .n{font-weight:600}
.row .n small{display:block;font-weight:400;color:var(--dim);font-size:11.5px;margin-top:2px}
.row .v{font-family:var(--mono);font-size:13.5px;white-space:nowrap}
.up{color:var(--up)} .down{color:var(--down)} .dim{color:var(--dim)}
.big{font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-.01em}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kv div{background:var(--bg);border-radius:10px;padding:10px}
.kv b{display:block;font-family:var(--mono);font-size:17px;margin-top:4px}
label{display:block;font-size:11.5px;color:var(--dim);margin:10px 0 4px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--bg);font-size:15px;color:var(--ink);font-family:inherit}
textarea{min-height:64px;resize:vertical}
.seg{display:flex;gap:8px;margin-top:6px}
.seg button{flex:1;padding:11px 0;border:1px solid var(--line);background:var(--card);
  border-radius:10px;font-size:14px;color:var(--dim)}
.seg button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.btn{width:100%;padding:14px;border:0;border-radius:12px;background:var(--acc);color:#fff;
  font-size:15px;font-weight:600;margin-top:14px}
.btn.sec{background:var(--card);color:var(--ink);border:1px solid var(--line);font-weight:500}
.btn.danger{background:#fff;color:var(--down);border:1px solid var(--line)}
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:rgba(255,255,255,.94);
  border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));
  backdrop-filter:saturate(180%) blur(12px)}
.tabbar button{flex:1;border:0;background:none;color:var(--dim);font-size:10.5px;
  display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0}
.tabbar button span{font-size:18px;line-height:1}
.tabbar button.on{color:var(--ink);font-weight:600}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(12px);
  background:rgba(21,23,26,.92);color:#fff;padding:10px 16px;border-radius:20px;font-size:13px;
  opacity:0;pointer-events:none;transition:.2s;max-width:86%;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.empty{text-align:center;color:var(--dim);font-size:13.5px;padding:26px 10px;line-height:1.7}
.tag{display:inline-block;font-size:10.5px;padding:2px 7px;border:1px solid var(--line);
  border-radius:9px;color:var(--dim);margin-left:4px;vertical-align:1px}
.file{display:none}
