@font-face{font-family:ListenIPA;src:url(data:font/woff2;base64,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) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--blue: #2b6cb0;--blue-dark: #234e7d;--green: #2f855a;--red: #c53030;--amber: #b7791f;--bg: #f7f8fa;--card: #fff;--line: #e2e8f0;--text: #1a202c;--muted: #718096;--radius: 12px;--font-ipa: "ListenIPA", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6}#app{max-width:640px;margin:0 auto;padding:0 14px env(safe-area-inset-bottom)}.page{padding:16px 0 32px}.title{font-size:20px;font-weight:600;margin:0 0 4px}.sub{color:var(--muted);font-size:14px;margin:0 0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-size:16px;cursor:pointer}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.red{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{background:transparent}.btn.block{width:100%}.btn.sm{min-height:36px;padding:6px 12px;font-size:14px}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:10px}.grow{flex:1;min-width:0}input,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;font-family:inherit;background:#fff;color:var(--text)}textarea{min-height:72px;resize:vertical}.tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;line-height:1.7}.tag.warn{background:#fffaf0;color:var(--amber);border:1px solid #fbd38d}.tag.bad{background:#fff5f5;color:var(--red);border:1px solid #fc8181}.tag.ok{background:#f0fff4;color:var(--green);border:1px solid #9ae6b4}.tag.info{background:#ebf8ff;color:var(--blue);border:1px solid #90cdf4}.muted{color:var(--muted);font-size:14px}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}.ipa{font-family:var(--font-ipa)}.center{text-align:center}.alert{padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:12px}.alert.err{background:#fff5f5;color:var(--red);border:1px solid #fc8181}.alert.warn{background:#fffaf0;color:var(--amber);border:1px solid #fbd38d}.alert.ok{background:#f0fff4;color:var(--green);border:1px solid #9ae6b4}.divider{height:1px;background:var(--line);margin:12px 0}.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:r .8s linear infinite}@keyframes r{to{transform:rotate(360deg)}}
