:root{--bg:#fdfdfc;--card:#fff;--ink:#33383f;--muted:#7a8593;--line:#dce2e8;--brand:#5b8fc7;--brand-dark:#33383f;--brand-onDark:#87add9;--r:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Microsoft JhengHei,PingFang TC,Noto Sans TC,Arial,sans-serif;line-height:1.6}.wrap{width:min(720px,calc(100% - 40px));margin:0 auto}header{padding:20px 0;display:flex;align-items:center;gap:10px}.logo{font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.logo span{color:var(--brand)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px}.drop{border:2px dashed var(--line);border-radius:var(--r);padding:48px 24px;text-align:center;color:var(--muted);cursor:pointer;transition:border-color .15s}.drop.drag{border-color:var(--brand)}.btn{padding:13px 26px;border-radius:999px;border:none;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;background:var(--brand);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted);font-size:13.5px}.result{margin-top:20px;padding:18px;border-radius:var(--r);background:#f3f5f8}.titles{margin:10px 0 0;padding-left:20px}.usage-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:8px}.usage-fill{height:100%;background:var(--brand)}.err{color:#b33;font-size:13.5px;margin-top:10px}